Rename event->listener and update defs.
diff --git a/dev/defs/animation/event_bool_change.json b/dev/defs/animation/event_bool_change.json deleted file mode 100644 index 7a67cd7..0000000 --- a/dev/defs/animation/event_bool_change.json +++ /dev/null
@@ -1,19 +0,0 @@ -{ - "name": "EventBoolChange", - "key": { - "int": 117, - "string": "event_bool_change" - }, - "extends": "animation/event_input_change.json", - "properties": { - "value": { - "type": "uint", - "initialValue": "1", - "key": { - "int": 228, - "string": "value" - }, - "description": "Value to set the input to when the event occurs." - } - } -} \ No newline at end of file
diff --git a/dev/defs/animation/event_number_change.json b/dev/defs/animation/event_number_change.json deleted file mode 100644 index cc96e0a..0000000 --- a/dev/defs/animation/event_number_change.json +++ /dev/null
@@ -1,19 +0,0 @@ -{ - "name": "EventNumberChange", - "key": { - "int": 118, - "string": "event_number_change" - }, - "extends": "animation/event_input_change.json", - "properties": { - "value": { - "type": "double", - "initialValue": "0", - "key": { - "int": 229, - "string": "value" - }, - "description": "Value to set the input to when the event occurs." - } - } -} \ No newline at end of file
diff --git a/dev/defs/animation/event_trigger_change.json b/dev/defs/animation/event_trigger_change.json deleted file mode 100644 index 9aa6e0d..0000000 --- a/dev/defs/animation/event_trigger_change.json +++ /dev/null
@@ -1,8 +0,0 @@ -{ - "name": "EventTriggerChange", - "key": { - "int": 115, - "string": "event_trigger_change" - }, - "extends": "animation/event_input_change.json" -} \ No newline at end of file
diff --git a/dev/defs/animation/listener_bool_change.json b/dev/defs/animation/listener_bool_change.json new file mode 100644 index 0000000..54b5ca0 --- /dev/null +++ b/dev/defs/animation/listener_bool_change.json
@@ -0,0 +1,19 @@ +{ + "name": "ListenerBoolChange", + "key": { + "int": 117, + "string": "listener_bool_change" + }, + "extends": "animation/listener_input_change.json", + "properties": { + "value": { + "type": "uint", + "initialValue": "1", + "key": { + "int": 228, + "string": "value" + }, + "description": "Value to set the input to when the listener occurs." + } + } +} \ No newline at end of file
diff --git a/dev/defs/animation/event_input_change.json b/dev/defs/animation/listener_input_change.json similarity index 79% rename from dev/defs/animation/event_input_change.json rename to dev/defs/animation/listener_input_change.json index 5dc1811..df4cd3b 100644 --- a/dev/defs/animation/event_input_change.json +++ b/dev/defs/animation/listener_input_change.json
@@ -1,21 +1,21 @@ { - "name": "EventInputChange", + "name": "ListenerInputChange", "key": { "int": 116, - "string": "event_input_change" + "string": "listener_input_change" }, "abstract": true, "properties": { - "eventId": { + "listenerId": { "type": "Id", "typeRuntime": "uint", "initialValue": "Core.missingId", "initialValueRuntime": "0", "key": { "int": 226, - "string": "eventid" + "string": "listenerId" }, - "description": "Identifier used to track the StateMachineEvent this result belongs to.", + "description": "Identifier used to track the StateMachineListener this result belongs to.", "runtime": false }, "inputId": {
diff --git a/dev/defs/animation/listener_number_change.json b/dev/defs/animation/listener_number_change.json new file mode 100644 index 0000000..f980b3a --- /dev/null +++ b/dev/defs/animation/listener_number_change.json
@@ -0,0 +1,19 @@ +{ + "name": "ListenerNumberChange", + "key": { + "int": 118, + "string": "listener_number_change" + }, + "extends": "animation/listener_input_change.json", + "properties": { + "value": { + "type": "double", + "initialValue": "0", + "key": { + "int": 229, + "string": "value" + }, + "description": "Value to set the input to when the listener occurs." + } + } +} \ No newline at end of file
diff --git a/dev/defs/animation/listener_trigger_change.json b/dev/defs/animation/listener_trigger_change.json new file mode 100644 index 0000000..d3d0759 --- /dev/null +++ b/dev/defs/animation/listener_trigger_change.json
@@ -0,0 +1,8 @@ +{ + "name": "ListenerTriggerChange", + "key": { + "int": 115, + "string": "listener_trigger_change" + }, + "extends": "animation/listener_input_change.json" +} \ No newline at end of file
diff --git a/dev/defs/animation/nested_state_machine.json b/dev/defs/animation/nested_state_machine.json index 5b69e0a..1982515 100644 --- a/dev/defs/animation/nested_state_machine.json +++ b/dev/defs/animation/nested_state_machine.json
@@ -2,7 +2,7 @@ "name": "NestedStateMachine", "key": { "int": 95, - "string": "nestedstatemachine" + "string": "nestedStateMachine" }, "extends": "nested_animation.json", "generic": "animation/state_machine.json"
diff --git a/dev/defs/animation/state_machine.json b/dev/defs/animation/state_machine.json index c28736f..c73a1cc 100644 --- a/dev/defs/animation/state_machine.json +++ b/dev/defs/animation/state_machine.json
@@ -6,17 +6,6 @@ }, "extends": "animation/animation.json", "properties": { - "editingListValue": { - "type": "uint", - "initialValue": "0", - "key": { - "int": 136, - "string": "editinglistvalue" - }, - "description": "Backing value for enum representing which list being edited.", - "runtime": false, - "coop": false - }, "editingLayerId": { "type": "Id", "initialValue": "Core.missingId",
diff --git a/dev/defs/animation/state_machine_event.json b/dev/defs/animation/state_machine_listener.json similarity index 68% rename from dev/defs/animation/state_machine_event.json rename to dev/defs/animation/state_machine_listener.json index 64a8ffe..12a6892 100644 --- a/dev/defs/animation/state_machine_event.json +++ b/dev/defs/animation/state_machine_listener.json
@@ -1,8 +1,8 @@ { - "name": "StateMachineEvent", + "name": "StateMachineListener", "key": { "int": 114, - "string": "statemachineevent" + "string": "stateMachineListener" }, "extends": "animation/state_machine_component.json", "properties": { @@ -15,16 +15,16 @@ "int": 224, "string": "targetid" }, - "description": "Identifier used to track the object use as a target fo this event." + "description": "Identifier used to track the object use as a target fo this listener." }, - "eventTypeValue": { + "listenerTypeValue": { "type": "uint", "initialValue": "0", "key": { "int": 225, - "string": "eventtypevalue" + "string": "listenertypevalue" }, - "description": "Event type (hover, click, etc)." + "description": "Listener type (hover, click, etc)." } } } \ No newline at end of file
diff --git a/include/rive/animation/event_bool_change.hpp b/include/rive/animation/event_bool_change.hpp deleted file mode 100644 index 61f79a2..0000000 --- a/include/rive/animation/event_bool_change.hpp +++ /dev/null
@@ -1,13 +0,0 @@ -#ifndef _RIVE_EVENT_BOOL_CHANGE_HPP_ -#define _RIVE_EVENT_BOOL_CHANGE_HPP_ -#include "rive/generated/animation/event_bool_change_base.hpp" - -namespace rive { - class EventBoolChange : public EventBoolChangeBase { - public: - bool validateInputType(const StateMachineInput* input) const override; - void perform(StateMachineInstance* stateMachineInstance) const override; - }; -} // namespace rive - -#endif \ No newline at end of file
diff --git a/include/rive/animation/event_number_change.hpp b/include/rive/animation/event_number_change.hpp deleted file mode 100644 index 6e123d0..0000000 --- a/include/rive/animation/event_number_change.hpp +++ /dev/null
@@ -1,13 +0,0 @@ -#ifndef _RIVE_EVENT_NUMBER_CHANGE_HPP_ -#define _RIVE_EVENT_NUMBER_CHANGE_HPP_ -#include "rive/generated/animation/event_number_change_base.hpp" - -namespace rive { - class EventNumberChange : public EventNumberChangeBase { - public: - bool validateInputType(const StateMachineInput* input) const override; - void perform(StateMachineInstance* stateMachineInstance) const override; - }; -} // namespace rive - -#endif \ No newline at end of file
diff --git a/include/rive/animation/event_trigger_change.hpp b/include/rive/animation/event_trigger_change.hpp deleted file mode 100644 index 20200b5..0000000 --- a/include/rive/animation/event_trigger_change.hpp +++ /dev/null
@@ -1,13 +0,0 @@ -#ifndef _RIVE_EVENT_TRIGGER_CHANGE_HPP_ -#define _RIVE_EVENT_TRIGGER_CHANGE_HPP_ -#include "rive/generated/animation/event_trigger_change_base.hpp" - -namespace rive { - class EventTriggerChange : public EventTriggerChangeBase { - public: - bool validateInputType(const StateMachineInput* input) const override; - void perform(StateMachineInstance* stateMachineInstance) const override; - }; -} // namespace rive - -#endif \ No newline at end of file
diff --git a/include/rive/animation/listener_bool_change.hpp b/include/rive/animation/listener_bool_change.hpp new file mode 100644 index 0000000..2bc6efb --- /dev/null +++ b/include/rive/animation/listener_bool_change.hpp
@@ -0,0 +1,13 @@ +#ifndef _RIVE_LISTENER_BOOL_CHANGE_HPP_ +#define _RIVE_LISTENER_BOOL_CHANGE_HPP_ +#include "rive/generated/animation/listener_bool_change_base.hpp" + +namespace rive { + class ListenerBoolChange : public ListenerBoolChangeBase { + public: + bool validateInputType(const StateMachineInput* input) const override; + void perform(StateMachineInstance* stateMachineInstance) const override; + }; +} // namespace rive + +#endif \ No newline at end of file
diff --git a/include/rive/animation/event_input_change.hpp b/include/rive/animation/listener_input_change.hpp similarity index 63% rename from include/rive/animation/event_input_change.hpp rename to include/rive/animation/listener_input_change.hpp index b3ae0ce..c7ccc04 100644 --- a/include/rive/animation/event_input_change.hpp +++ b/include/rive/animation/listener_input_change.hpp
@@ -1,11 +1,11 @@ -#ifndef _RIVE_EVENT_INPUT_CHANGE_HPP_ -#define _RIVE_EVENT_INPUT_CHANGE_HPP_ -#include "rive/generated/animation/event_input_change_base.hpp" +#ifndef _RIVE_LISTENER_INPUT_CHANGE_HPP_ +#define _RIVE_LISTENER_INPUT_CHANGE_HPP_ +#include "rive/generated/animation/listener_input_change_base.hpp" namespace rive { class StateMachineInstance; class StateMachineInput; - class EventInputChange : public EventInputChangeBase { + class ListenerInputChange : public ListenerInputChangeBase { public: StatusCode import(ImportStack& importStack) override; virtual void perform(StateMachineInstance* stateMachineInstance) const = 0;
diff --git a/include/rive/animation/listener_number_change.hpp b/include/rive/animation/listener_number_change.hpp new file mode 100644 index 0000000..a20c911 --- /dev/null +++ b/include/rive/animation/listener_number_change.hpp
@@ -0,0 +1,13 @@ +#ifndef _RIVE_LISTENER_NUMBER_CHANGE_HPP_ +#define _RIVE_LISTENER_NUMBER_CHANGE_HPP_ +#include "rive/generated/animation/listener_number_change_base.hpp" + +namespace rive { + class ListenerNumberChange : public ListenerNumberChangeBase { + public: + bool validateInputType(const StateMachineInput* input) const override; + void perform(StateMachineInstance* stateMachineInstance) const override; + }; +} // namespace rive + +#endif \ No newline at end of file
diff --git a/include/rive/animation/listener_trigger_change.hpp b/include/rive/animation/listener_trigger_change.hpp new file mode 100644 index 0000000..ab89e1f --- /dev/null +++ b/include/rive/animation/listener_trigger_change.hpp
@@ -0,0 +1,13 @@ +#ifndef _RIVE_LISTENER_TRIGGER_CHANGE_HPP_ +#define _RIVE_LISTENER_TRIGGER_CHANGE_HPP_ +#include "rive/generated/animation/listener_trigger_change_base.hpp" + +namespace rive { + class ListenerTriggerChange : public ListenerTriggerChangeBase { + public: + bool validateInputType(const StateMachineInput* input) const override; + void perform(StateMachineInstance* stateMachineInstance) const override; + }; +} // namespace rive + +#endif \ No newline at end of file
diff --git a/include/rive/animation/state_machine.hpp b/include/rive/animation/state_machine.hpp index c711878..ca6b5eb 100644 --- a/include/rive/animation/state_machine.hpp +++ b/include/rive/animation/state_machine.hpp
@@ -7,7 +7,7 @@ namespace rive { class StateMachineLayer; class StateMachineInput; - class StateMachineEvent; + class StateMachineListener; class StateMachineImporter; class StateMachine : public StateMachineBase { friend class StateMachineImporter; @@ -15,11 +15,11 @@ private: std::vector<std::unique_ptr<StateMachineLayer>> m_Layers; std::vector<std::unique_ptr<StateMachineInput>> m_Inputs; - std::vector<std::unique_ptr<StateMachineEvent>> m_Events; + std::vector<std::unique_ptr<StateMachineListener>> m_Listeners; void addLayer(std::unique_ptr<StateMachineLayer>); void addInput(std::unique_ptr<StateMachineInput>); - void addEvent(std::unique_ptr<StateMachineEvent>); + void addListener(std::unique_ptr<StateMachineListener>); public: StateMachine(); @@ -29,13 +29,13 @@ size_t layerCount() const { return m_Layers.size(); } size_t inputCount() const { return m_Inputs.size(); } - size_t eventCount() const { return m_Events.size(); } + size_t listenerCount() const { return m_Listeners.size(); } const StateMachineInput* input(std::string name) const; const StateMachineInput* input(size_t index) const; const StateMachineLayer* layer(std::string name) const; const StateMachineLayer* layer(size_t index) const; - const StateMachineEvent* event(size_t index) const; + const StateMachineListener* listener(size_t index) const; StatusCode onAddedDirty(CoreContext* context) override; StatusCode onAddedClean(CoreContext* context) override;
diff --git a/include/rive/animation/state_machine_event.hpp b/include/rive/animation/state_machine_event.hpp deleted file mode 100644 index ea6cb5a..0000000 --- a/include/rive/animation/state_machine_event.hpp +++ /dev/null
@@ -1,31 +0,0 @@ -#ifndef _RIVE_STATE_MACHINE_EVENT_HPP_ -#define _RIVE_STATE_MACHINE_EVENT_HPP_ -#include "rive/generated/animation/state_machine_event_base.hpp" -#include "rive/event_type.hpp" - -namespace rive { - class Shape; - class StateMachineEventImporter; - class EventInputChange; - class StateMachineInstance; - class StateMachineEvent : public StateMachineEventBase { - friend class StateMachineEventImporter; - - private: - std::vector<uint32_t> m_HitShapesIds; - std::vector<EventInputChange*> m_InputChanges; - void addInputChange(EventInputChange* inputChange); - - public: - EventType eventType() const { return (EventType)eventTypeValue(); } - size_t inputChangeCount() const { return m_InputChanges.size(); } - const EventInputChange* inputChange(size_t index) const; - StatusCode import(ImportStack& importStack) override; - StatusCode onAddedClean(CoreContext* context) override; - - const std::vector<uint32_t>& hitShapeIds() const { return m_HitShapesIds; } - void performChanges(StateMachineInstance* stateMachineInstance) const; - }; -} // namespace rive - -#endif \ No newline at end of file
diff --git a/include/rive/animation/state_machine_instance.hpp b/include/rive/animation/state_machine_instance.hpp index 5b05aa6..fa8fe6f 100644 --- a/include/rive/animation/state_machine_instance.hpp +++ b/include/rive/animation/state_machine_instance.hpp
@@ -5,7 +5,7 @@ #include <stddef.h> #include <vector> #include "rive/animation/linear_animation_instance.hpp" -#include "rive/event_type.hpp" +#include "rive/listener_type.hpp" #include "rive/scene.hpp" namespace rive { @@ -37,8 +37,9 @@ std::vector<std::unique_ptr<HitShape>> m_HitShapes; std::vector<NestedArtboard*> m_HitNestedArtboards; - /// Provide a hitEvent if you want to process a down or an up for the pointer position too. - void processEvent(Vec2D position, EventType hitEvent = EventType::updateHover); + /// Provide a hitListener if you want to process a down or an up for the pointer position + /// too. + void updateListeners(Vec2D position, ListenerType hitListener = ListenerType::updateHover); template <typename SMType, typename InstType> InstType* getNamedInput(const std::string& name) const;
diff --git a/include/rive/animation/state_machine_listener.hpp b/include/rive/animation/state_machine_listener.hpp new file mode 100644 index 0000000..14bd60b --- /dev/null +++ b/include/rive/animation/state_machine_listener.hpp
@@ -0,0 +1,31 @@ +#ifndef _RIVE_STATE_MACHINE_LISTENER_HPP_ +#define _RIVE_STATE_MACHINE_LISTENER_HPP_ +#include "rive/generated/animation/state_machine_listener_base.hpp" +#include "rive/listener_type.hpp" + +namespace rive { + class Shape; + class StateMachineListenerImporter; + class ListenerInputChange; + class StateMachineInstance; + class StateMachineListener : public StateMachineListenerBase { + friend class StateMachineListenerImporter; + + private: + std::vector<uint32_t> m_HitShapesIds; + std::vector<ListenerInputChange*> m_InputChanges; + void addInputChange(ListenerInputChange* inputChange); + + public: + ListenerType listenerType() const { return (ListenerType)listenerTypeValue(); } + size_t inputChangeCount() const { return m_InputChanges.size(); } + const ListenerInputChange* inputChange(size_t index) const; + StatusCode import(ImportStack& importStack) override; + StatusCode onAddedClean(CoreContext* context) override; + + const std::vector<uint32_t>& hitShapeIds() const { return m_HitShapesIds; } + void performChanges(StateMachineInstance* stateMachineInstance) const; + }; +} // namespace rive + +#endif \ No newline at end of file
diff --git a/include/rive/event_type.hpp b/include/rive/event_type.hpp deleted file mode 100644 index deb1cea..0000000 --- a/include/rive/event_type.hpp +++ /dev/null
@@ -1,12 +0,0 @@ -#ifndef _RIVE_EVENT_TYPE_HPP_ -#define _RIVE_EVENT_TYPE_HPP_ -namespace rive { - enum class EventType : int { - updateHover = -1, - enter = 0, - exit = 1, - down = 2, - up = 3, - }; -} -#endif \ No newline at end of file
diff --git a/include/rive/generated/animation/event_bool_change_base.hpp b/include/rive/generated/animation/listener_bool_change_base.hpp similarity index 71% rename from include/rive/generated/animation/event_bool_change_base.hpp rename to include/rive/generated/animation/listener_bool_change_base.hpp index e0914b7..e4e667b 100644 --- a/include/rive/generated/animation/event_bool_change_base.hpp +++ b/include/rive/generated/animation/listener_bool_change_base.hpp
@@ -1,11 +1,11 @@ -#ifndef _RIVE_EVENT_BOOL_CHANGE_BASE_HPP_ -#define _RIVE_EVENT_BOOL_CHANGE_BASE_HPP_ -#include "rive/animation/event_input_change.hpp" +#ifndef _RIVE_LISTENER_BOOL_CHANGE_BASE_HPP_ +#define _RIVE_LISTENER_BOOL_CHANGE_BASE_HPP_ +#include "rive/animation/listener_input_change.hpp" #include "rive/core/field_types/core_uint_type.hpp" namespace rive { - class EventBoolChangeBase : public EventInputChange { + class ListenerBoolChangeBase : public ListenerInputChange { protected: - typedef EventInputChange Super; + typedef ListenerInputChange Super; public: static const uint16_t typeKey = 117; @@ -14,8 +14,8 @@ /// at runtime. bool isTypeOf(uint16_t typeKey) const override { switch (typeKey) { - case EventBoolChangeBase::typeKey: - case EventInputChangeBase::typeKey: + case ListenerBoolChangeBase::typeKey: + case ListenerInputChangeBase::typeKey: return true; default: return false; @@ -40,9 +40,9 @@ } Core* clone() const override; - void copy(const EventBoolChangeBase& object) { + void copy(const ListenerBoolChangeBase& object) { m_Value = object.m_Value; - EventInputChange::copy(object); + ListenerInputChange::copy(object); } bool deserialize(uint16_t propertyKey, BinaryReader& reader) override { @@ -51,7 +51,7 @@ m_Value = CoreUintType::deserialize(reader); return true; } - return EventInputChange::deserialize(propertyKey, reader); + return ListenerInputChange::deserialize(propertyKey, reader); } protected:
diff --git a/include/rive/generated/animation/event_input_change_base.hpp b/include/rive/generated/animation/listener_input_change_base.hpp similarity index 82% rename from include/rive/generated/animation/event_input_change_base.hpp rename to include/rive/generated/animation/listener_input_change_base.hpp index 7212efb..f4dca8a 100644 --- a/include/rive/generated/animation/event_input_change_base.hpp +++ b/include/rive/generated/animation/listener_input_change_base.hpp
@@ -1,9 +1,9 @@ -#ifndef _RIVE_EVENT_INPUT_CHANGE_BASE_HPP_ -#define _RIVE_EVENT_INPUT_CHANGE_BASE_HPP_ +#ifndef _RIVE_LISTENER_INPUT_CHANGE_BASE_HPP_ +#define _RIVE_LISTENER_INPUT_CHANGE_BASE_HPP_ #include "rive/core.hpp" #include "rive/core/field_types/core_uint_type.hpp" namespace rive { - class EventInputChangeBase : public Core { + class ListenerInputChangeBase : public Core { protected: typedef Core Super; @@ -14,7 +14,7 @@ /// at runtime. bool isTypeOf(uint16_t typeKey) const override { switch (typeKey) { - case EventInputChangeBase::typeKey: + case ListenerInputChangeBase::typeKey: return true; default: return false; @@ -38,7 +38,7 @@ inputIdChanged(); } - void copy(const EventInputChangeBase& object) { m_InputId = object.m_InputId; } + void copy(const ListenerInputChangeBase& object) { m_InputId = object.m_InputId; } bool deserialize(uint16_t propertyKey, BinaryReader& reader) override { switch (propertyKey) {
diff --git a/include/rive/generated/animation/event_number_change_base.hpp b/include/rive/generated/animation/listener_number_change_base.hpp similarity index 70% rename from include/rive/generated/animation/event_number_change_base.hpp rename to include/rive/generated/animation/listener_number_change_base.hpp index 4c647ed..54a7209 100644 --- a/include/rive/generated/animation/event_number_change_base.hpp +++ b/include/rive/generated/animation/listener_number_change_base.hpp
@@ -1,11 +1,11 @@ -#ifndef _RIVE_EVENT_NUMBER_CHANGE_BASE_HPP_ -#define _RIVE_EVENT_NUMBER_CHANGE_BASE_HPP_ -#include "rive/animation/event_input_change.hpp" +#ifndef _RIVE_LISTENER_NUMBER_CHANGE_BASE_HPP_ +#define _RIVE_LISTENER_NUMBER_CHANGE_BASE_HPP_ +#include "rive/animation/listener_input_change.hpp" #include "rive/core/field_types/core_double_type.hpp" namespace rive { - class EventNumberChangeBase : public EventInputChange { + class ListenerNumberChangeBase : public ListenerInputChange { protected: - typedef EventInputChange Super; + typedef ListenerInputChange Super; public: static const uint16_t typeKey = 118; @@ -14,8 +14,8 @@ /// at runtime. bool isTypeOf(uint16_t typeKey) const override { switch (typeKey) { - case EventNumberChangeBase::typeKey: - case EventInputChangeBase::typeKey: + case ListenerNumberChangeBase::typeKey: + case ListenerInputChangeBase::typeKey: return true; default: return false; @@ -40,9 +40,9 @@ } Core* clone() const override; - void copy(const EventNumberChangeBase& object) { + void copy(const ListenerNumberChangeBase& object) { m_Value = object.m_Value; - EventInputChange::copy(object); + ListenerInputChange::copy(object); } bool deserialize(uint16_t propertyKey, BinaryReader& reader) override { @@ -51,7 +51,7 @@ m_Value = CoreDoubleType::deserialize(reader); return true; } - return EventInputChange::deserialize(propertyKey, reader); + return ListenerInputChange::deserialize(propertyKey, reader); } protected:
diff --git a/include/rive/generated/animation/event_trigger_change_base.hpp b/include/rive/generated/animation/listener_trigger_change_base.hpp similarity index 60% rename from include/rive/generated/animation/event_trigger_change_base.hpp rename to include/rive/generated/animation/listener_trigger_change_base.hpp index 7232825..14985b3 100644 --- a/include/rive/generated/animation/event_trigger_change_base.hpp +++ b/include/rive/generated/animation/listener_trigger_change_base.hpp
@@ -1,10 +1,10 @@ -#ifndef _RIVE_EVENT_TRIGGER_CHANGE_BASE_HPP_ -#define _RIVE_EVENT_TRIGGER_CHANGE_BASE_HPP_ -#include "rive/animation/event_input_change.hpp" +#ifndef _RIVE_LISTENER_TRIGGER_CHANGE_BASE_HPP_ +#define _RIVE_LISTENER_TRIGGER_CHANGE_BASE_HPP_ +#include "rive/animation/listener_input_change.hpp" namespace rive { - class EventTriggerChangeBase : public EventInputChange { + class ListenerTriggerChangeBase : public ListenerInputChange { protected: - typedef EventInputChange Super; + typedef ListenerInputChange Super; public: static const uint16_t typeKey = 115; @@ -13,8 +13,8 @@ /// at runtime. bool isTypeOf(uint16_t typeKey) const override { switch (typeKey) { - case EventTriggerChangeBase::typeKey: - case EventInputChangeBase::typeKey: + case ListenerTriggerChangeBase::typeKey: + case ListenerInputChangeBase::typeKey: return true; default: return false;
diff --git a/include/rive/generated/animation/state_machine_event_base.hpp b/include/rive/generated/animation/state_machine_listener_base.hpp similarity index 65% rename from include/rive/generated/animation/state_machine_event_base.hpp rename to include/rive/generated/animation/state_machine_listener_base.hpp index a67e39c..6811b29 100644 --- a/include/rive/generated/animation/state_machine_event_base.hpp +++ b/include/rive/generated/animation/state_machine_listener_base.hpp
@@ -1,9 +1,9 @@ -#ifndef _RIVE_STATE_MACHINE_EVENT_BASE_HPP_ -#define _RIVE_STATE_MACHINE_EVENT_BASE_HPP_ +#ifndef _RIVE_STATE_MACHINE_LISTENER_BASE_HPP_ +#define _RIVE_STATE_MACHINE_LISTENER_BASE_HPP_ #include "rive/animation/state_machine_component.hpp" #include "rive/core/field_types/core_uint_type.hpp" namespace rive { - class StateMachineEventBase : public StateMachineComponent { + class StateMachineListenerBase : public StateMachineComponent { protected: typedef StateMachineComponent Super; @@ -14,7 +14,7 @@ /// at runtime. bool isTypeOf(uint16_t typeKey) const override { switch (typeKey) { - case StateMachineEventBase::typeKey: + case StateMachineListenerBase::typeKey: case StateMachineComponentBase::typeKey: return true; default: @@ -25,11 +25,11 @@ uint16_t coreType() const override { return typeKey; } static const uint16_t targetIdPropertyKey = 224; - static const uint16_t eventTypeValuePropertyKey = 225; + static const uint16_t listenerTypeValuePropertyKey = 225; private: uint32_t m_TargetId = 0; - uint32_t m_EventTypeValue = 0; + uint32_t m_ListenerTypeValue = 0; public: inline uint32_t targetId() const { return m_TargetId; } @@ -41,19 +41,19 @@ targetIdChanged(); } - inline uint32_t eventTypeValue() const { return m_EventTypeValue; } - void eventTypeValue(uint32_t value) { - if (m_EventTypeValue == value) { + inline uint32_t listenerTypeValue() const { return m_ListenerTypeValue; } + void listenerTypeValue(uint32_t value) { + if (m_ListenerTypeValue == value) { return; } - m_EventTypeValue = value; - eventTypeValueChanged(); + m_ListenerTypeValue = value; + listenerTypeValueChanged(); } Core* clone() const override; - void copy(const StateMachineEventBase& object) { + void copy(const StateMachineListenerBase& object) { m_TargetId = object.m_TargetId; - m_EventTypeValue = object.m_EventTypeValue; + m_ListenerTypeValue = object.m_ListenerTypeValue; StateMachineComponent::copy(object); } @@ -62,8 +62,8 @@ case targetIdPropertyKey: m_TargetId = CoreUintType::deserialize(reader); return true; - case eventTypeValuePropertyKey: - m_EventTypeValue = CoreUintType::deserialize(reader); + case listenerTypeValuePropertyKey: + m_ListenerTypeValue = CoreUintType::deserialize(reader); return true; } return StateMachineComponent::deserialize(propertyKey, reader); @@ -71,7 +71,7 @@ protected: virtual void targetIdChanged() {} - virtual void eventTypeValueChanged() {} + virtual void listenerTypeValueChanged() {} }; } // namespace rive
diff --git a/include/rive/generated/core_registry.hpp b/include/rive/generated/core_registry.hpp index bf06626..ed1a0f7 100644 --- a/include/rive/generated/core_registry.hpp +++ b/include/rive/generated/core_registry.hpp
@@ -12,10 +12,6 @@ #include "rive/animation/blend_state_transition.hpp" #include "rive/animation/cubic_interpolator.hpp" #include "rive/animation/entry_state.hpp" -#include "rive/animation/event_bool_change.hpp" -#include "rive/animation/event_input_change.hpp" -#include "rive/animation/event_number_change.hpp" -#include "rive/animation/event_trigger_change.hpp" #include "rive/animation/exit_state.hpp" #include "rive/animation/keyed_object.hpp" #include "rive/animation/keyed_property.hpp" @@ -26,6 +22,10 @@ #include "rive/animation/keyframe_id.hpp" #include "rive/animation/layer_state.hpp" #include "rive/animation/linear_animation.hpp" +#include "rive/animation/listener_bool_change.hpp" +#include "rive/animation/listener_input_change.hpp" +#include "rive/animation/listener_number_change.hpp" +#include "rive/animation/listener_trigger_change.hpp" #include "rive/animation/nested_linear_animation.hpp" #include "rive/animation/nested_remap_animation.hpp" #include "rive/animation/nested_simple_animation.hpp" @@ -33,10 +33,10 @@ #include "rive/animation/state_machine.hpp" #include "rive/animation/state_machine_bool.hpp" #include "rive/animation/state_machine_component.hpp" -#include "rive/animation/state_machine_event.hpp" #include "rive/animation/state_machine_input.hpp" #include "rive/animation/state_machine_layer.hpp" #include "rive/animation/state_machine_layer_component.hpp" +#include "rive/animation/state_machine_listener.hpp" #include "rive/animation/state_machine_number.hpp" #include "rive/animation/state_machine_trigger.hpp" #include "rive/animation/state_transition.hpp" @@ -133,14 +133,10 @@ return new Node(); case NestedArtboardBase::typeKey: return new NestedArtboard(); - case EventNumberChangeBase::typeKey: - return new EventNumberChange(); case NestedSimpleAnimationBase::typeKey: return new NestedSimpleAnimation(); case AnimationStateBase::typeKey: return new AnimationState(); - case StateMachineEventBase::typeKey: - return new StateMachineEvent(); case KeyedObjectBase::typeKey: return new KeyedObject(); case BlendAnimationDirectBase::typeKey: @@ -151,22 +147,24 @@ return new TransitionTriggerCondition(); case KeyedPropertyBase::typeKey: return new KeyedProperty(); + case StateMachineListenerBase::typeKey: + return new StateMachineListener(); case KeyFrameIdBase::typeKey: return new KeyFrameId(); case KeyFrameBoolBase::typeKey: return new KeyFrameBool(); + case ListenerBoolChangeBase::typeKey: + return new ListenerBoolChange(); case TransitionNumberConditionBase::typeKey: return new TransitionNumberCondition(); - case EventBoolChangeBase::typeKey: - return new EventBoolChange(); case AnyStateBase::typeKey: return new AnyState(); - case EventTriggerChangeBase::typeKey: - return new EventTriggerChange(); case StateMachineLayerBase::typeKey: return new StateMachineLayer(); case AnimationBase::typeKey: return new Animation(); + case ListenerNumberChangeBase::typeKey: + return new ListenerNumberChange(); case CubicInterpolatorBase::typeKey: return new CubicInterpolator(); case StateTransitionBase::typeKey: @@ -183,6 +181,8 @@ return new LinearAnimation(); case StateMachineTriggerBase::typeKey: return new StateMachineTrigger(); + case ListenerTriggerChangeBase::typeKey: + return new ListenerTriggerChange(); case BlendStateDirectBase::typeKey: return new BlendStateDirect(); case NestedStateMachineBase::typeKey: @@ -331,18 +331,12 @@ case NestedAnimationBase::animationIdPropertyKey: object->as<NestedAnimationBase>()->animationId(value); break; - case EventInputChangeBase::inputIdPropertyKey: - object->as<EventInputChangeBase>()->inputId(value); + case ListenerInputChangeBase::inputIdPropertyKey: + object->as<ListenerInputChangeBase>()->inputId(value); break; case AnimationStateBase::animationIdPropertyKey: object->as<AnimationStateBase>()->animationId(value); break; - case StateMachineEventBase::targetIdPropertyKey: - object->as<StateMachineEventBase>()->targetId(value); - break; - case StateMachineEventBase::eventTypeValuePropertyKey: - object->as<StateMachineEventBase>()->eventTypeValue(value); - break; case KeyedObjectBase::objectIdPropertyKey: object->as<KeyedObjectBase>()->objectId(value); break; @@ -358,6 +352,12 @@ case KeyedPropertyBase::propertyKeyPropertyKey: object->as<KeyedPropertyBase>()->propertyKey(value); break; + case StateMachineListenerBase::targetIdPropertyKey: + object->as<StateMachineListenerBase>()->targetId(value); + break; + case StateMachineListenerBase::listenerTypeValuePropertyKey: + object->as<StateMachineListenerBase>()->listenerTypeValue(value); + break; case KeyFrameBase::framePropertyKey: object->as<KeyFrameBase>()->frame(value); break; @@ -370,12 +370,12 @@ case KeyFrameIdBase::valuePropertyKey: object->as<KeyFrameIdBase>()->value(value); break; + case ListenerBoolChangeBase::valuePropertyKey: + object->as<ListenerBoolChangeBase>()->value(value); + break; case TransitionValueConditionBase::opValuePropertyKey: object->as<TransitionValueConditionBase>()->opValue(value); break; - case EventBoolChangeBase::valuePropertyKey: - object->as<EventBoolChangeBase>()->value(value); - break; case StateTransitionBase::stateToIdPropertyKey: object->as<StateTransitionBase>()->stateToId(value); break; @@ -512,9 +512,6 @@ case NodeBase::yPropertyKey: object->as<NodeBase>()->y(value); break; - case EventNumberChangeBase::valuePropertyKey: - object->as<EventNumberChangeBase>()->value(value); - break; case NestedLinearAnimationBase::mixPropertyKey: object->as<NestedLinearAnimationBase>()->mix(value); break; @@ -527,6 +524,9 @@ case TransitionNumberConditionBase::valuePropertyKey: object->as<TransitionNumberConditionBase>()->value(value); break; + case ListenerNumberChangeBase::valuePropertyKey: + object->as<ListenerNumberChangeBase>()->value(value); + break; case CubicInterpolatorBase::x1PropertyKey: object->as<CubicInterpolatorBase>()->x1(value); break; @@ -836,14 +836,10 @@ return object->as<NestedArtboardBase>()->artboardId(); case NestedAnimationBase::animationIdPropertyKey: return object->as<NestedAnimationBase>()->animationId(); - case EventInputChangeBase::inputIdPropertyKey: - return object->as<EventInputChangeBase>()->inputId(); + case ListenerInputChangeBase::inputIdPropertyKey: + return object->as<ListenerInputChangeBase>()->inputId(); case AnimationStateBase::animationIdPropertyKey: return object->as<AnimationStateBase>()->animationId(); - case StateMachineEventBase::targetIdPropertyKey: - return object->as<StateMachineEventBase>()->targetId(); - case StateMachineEventBase::eventTypeValuePropertyKey: - return object->as<StateMachineEventBase>()->eventTypeValue(); case KeyedObjectBase::objectIdPropertyKey: return object->as<KeyedObjectBase>()->objectId(); case BlendAnimationBase::animationIdPropertyKey: @@ -854,6 +850,10 @@ return object->as<TransitionConditionBase>()->inputId(); case KeyedPropertyBase::propertyKeyPropertyKey: return object->as<KeyedPropertyBase>()->propertyKey(); + case StateMachineListenerBase::targetIdPropertyKey: + return object->as<StateMachineListenerBase>()->targetId(); + case StateMachineListenerBase::listenerTypeValuePropertyKey: + return object->as<StateMachineListenerBase>()->listenerTypeValue(); case KeyFrameBase::framePropertyKey: return object->as<KeyFrameBase>()->frame(); case KeyFrameBase::interpolationTypePropertyKey: @@ -862,10 +862,10 @@ return object->as<KeyFrameBase>()->interpolatorId(); case KeyFrameIdBase::valuePropertyKey: return object->as<KeyFrameIdBase>()->value(); + case ListenerBoolChangeBase::valuePropertyKey: + return object->as<ListenerBoolChangeBase>()->value(); case TransitionValueConditionBase::opValuePropertyKey: return object->as<TransitionValueConditionBase>()->opValue(); - case EventBoolChangeBase::valuePropertyKey: - return object->as<EventBoolChangeBase>()->value(); case StateTransitionBase::stateToIdPropertyKey: return object->as<StateTransitionBase>()->stateToId(); case StateTransitionBase::flagsPropertyKey: @@ -959,8 +959,6 @@ return object->as<NodeBase>()->x(); case NodeBase::yPropertyKey: return object->as<NodeBase>()->y(); - case EventNumberChangeBase::valuePropertyKey: - return object->as<EventNumberChangeBase>()->value(); case NestedLinearAnimationBase::mixPropertyKey: return object->as<NestedLinearAnimationBase>()->mix(); case NestedSimpleAnimationBase::speedPropertyKey: @@ -969,6 +967,8 @@ return object->as<StateMachineNumberBase>()->value(); case TransitionNumberConditionBase::valuePropertyKey: return object->as<TransitionNumberConditionBase>()->value(); + case ListenerNumberChangeBase::valuePropertyKey: + return object->as<ListenerNumberChangeBase>()->value(); case CubicInterpolatorBase::x1PropertyKey: return object->as<CubicInterpolatorBase>()->x1(); case CubicInterpolatorBase::y1PropertyKey: @@ -1174,21 +1174,21 @@ case DrawableBase::drawableFlagsPropertyKey: case NestedArtboardBase::artboardIdPropertyKey: case NestedAnimationBase::animationIdPropertyKey: - case EventInputChangeBase::inputIdPropertyKey: + case ListenerInputChangeBase::inputIdPropertyKey: case AnimationStateBase::animationIdPropertyKey: - case StateMachineEventBase::targetIdPropertyKey: - case StateMachineEventBase::eventTypeValuePropertyKey: case KeyedObjectBase::objectIdPropertyKey: case BlendAnimationBase::animationIdPropertyKey: case BlendAnimationDirectBase::inputIdPropertyKey: case TransitionConditionBase::inputIdPropertyKey: case KeyedPropertyBase::propertyKeyPropertyKey: + case StateMachineListenerBase::targetIdPropertyKey: + case StateMachineListenerBase::listenerTypeValuePropertyKey: case KeyFrameBase::framePropertyKey: case KeyFrameBase::interpolationTypePropertyKey: case KeyFrameBase::interpolatorIdPropertyKey: case KeyFrameIdBase::valuePropertyKey: + case ListenerBoolChangeBase::valuePropertyKey: case TransitionValueConditionBase::opValuePropertyKey: - case EventBoolChangeBase::valuePropertyKey: case StateTransitionBase::stateToIdPropertyKey: case StateTransitionBase::flagsPropertyKey: case StateTransitionBase::durationPropertyKey: @@ -1234,11 +1234,11 @@ case TransformComponentBase::scaleYPropertyKey: case NodeBase::xPropertyKey: case NodeBase::yPropertyKey: - case EventNumberChangeBase::valuePropertyKey: case NestedLinearAnimationBase::mixPropertyKey: case NestedSimpleAnimationBase::speedPropertyKey: case StateMachineNumberBase::valuePropertyKey: case TransitionNumberConditionBase::valuePropertyKey: + case ListenerNumberChangeBase::valuePropertyKey: case CubicInterpolatorBase::x1PropertyKey: case CubicInterpolatorBase::y1PropertyKey: case CubicInterpolatorBase::x2PropertyKey:
diff --git a/include/rive/importers/state_machine_event_importer.hpp b/include/rive/importers/state_machine_event_importer.hpp deleted file mode 100644 index 64ac249..0000000 --- a/include/rive/importers/state_machine_event_importer.hpp +++ /dev/null
@@ -1,21 +0,0 @@ -#ifndef _RIVE_STATE_MACHINE_EVENT_IMPORTER_HPP_ -#define _RIVE_STATE_MACHINE_EVENT_IMPORTER_HPP_ - -#include "rive/importers/import_stack.hpp" - -namespace rive { - class StateMachineEvent; - class StateMachine; - class EventInputChange; - class StateMachineEventImporter : public ImportStackObject { - private: - StateMachineEvent* m_StateMachineEvent; - - public: - StateMachineEventImporter(StateMachineEvent* event); - const StateMachineEvent* stateMachineEvent() const { return m_StateMachineEvent; } - void addInputChange(EventInputChange* change); - StatusCode resolve() override; - }; -} // namespace rive -#endif
diff --git a/include/rive/importers/state_machine_importer.hpp b/include/rive/importers/state_machine_importer.hpp index fb014ce..fa643ba 100644 --- a/include/rive/importers/state_machine_importer.hpp +++ b/include/rive/importers/state_machine_importer.hpp
@@ -6,7 +6,7 @@ namespace rive { class StateMachineInput; class StateMachineLayer; - class StateMachineEvent; + class StateMachineListener; class StateMachine; class StateMachineImporter : public ImportStackObject { private: @@ -18,7 +18,7 @@ void addLayer(std::unique_ptr<StateMachineLayer>); void addInput(std::unique_ptr<StateMachineInput>); - void addEvent(std::unique_ptr<StateMachineEvent>); + void addListener(std::unique_ptr<StateMachineListener>); StatusCode resolve() override; bool readNullObject() override;
diff --git a/include/rive/importers/state_machine_listener_importer.hpp b/include/rive/importers/state_machine_listener_importer.hpp new file mode 100644 index 0000000..6702e44 --- /dev/null +++ b/include/rive/importers/state_machine_listener_importer.hpp
@@ -0,0 +1,21 @@ +#ifndef _RIVE_STATE_MACHINE_LISTENER_IMPORTER_HPP_ +#define _RIVE_STATE_MACHINE_LISTENER_IMPORTER_HPP_ + +#include "rive/importers/import_stack.hpp" + +namespace rive { + class StateMachineListener; + class StateMachine; + class ListenerInputChange; + class StateMachineListenerImporter : public ImportStackObject { + private: + StateMachineListener* m_StateMachineListener; + + public: + StateMachineListenerImporter(StateMachineListener* listener); + const StateMachineListener* stateMachineListener() const { return m_StateMachineListener; } + void addInputChange(ListenerInputChange* change); + StatusCode resolve() override; + }; +} // namespace rive +#endif
diff --git a/include/rive/listener_type.hpp b/include/rive/listener_type.hpp new file mode 100644 index 0000000..a2c8471 --- /dev/null +++ b/include/rive/listener_type.hpp
@@ -0,0 +1,12 @@ +#ifndef _RIVE_LISTENER_TYPE_HPP_ +#define _RIVE_LISTENER_TYPE_HPP_ +namespace rive { + enum class ListenerType : int { + updateHover = -1, + enter = 0, + exit = 1, + down = 2, + up = 3, + }; +} +#endif \ No newline at end of file
diff --git a/src/animation/event_input_change.cpp b/src/animation/event_input_change.cpp deleted file mode 100644 index 7914ae3..0000000 --- a/src/animation/event_input_change.cpp +++ /dev/null
@@ -1,27 +0,0 @@ -#include "rive/animation/state_machine_event.hpp" -#include "rive/importers/import_stack.hpp" -#include "rive/importers/state_machine_event_importer.hpp" -#include "rive/importers/state_machine_importer.hpp" -#include "rive/animation/event_input_change.hpp" -#include "rive/animation/state_machine.hpp" - -using namespace rive; - -StatusCode EventInputChange::import(ImportStack& importStack) { - auto stateMachineImporter = importStack.latest<StateMachineImporter>(StateMachine::typeKey); - if (stateMachineImporter == nullptr) { - return StatusCode::MissingObject; - } - - auto stateMachineEventImporter = - importStack.latest<StateMachineEventImporter>(StateMachineEventBase::typeKey); - if (stateMachineEventImporter == nullptr) { - return StatusCode::MissingObject; - } - - if (!validateInputType(stateMachineImporter->stateMachine()->input((size_t)inputId()))) { - return StatusCode::InvalidObject; - } - stateMachineEventImporter->addInputChange(this); - return Super::import(importStack); -}
diff --git a/src/animation/event_bool_change.cpp b/src/animation/listener_bool_change.cpp similarity index 82% rename from src/animation/event_bool_change.cpp rename to src/animation/listener_bool_change.cpp index 2d81753..a930b28 100644 --- a/src/animation/event_bool_change.cpp +++ b/src/animation/listener_bool_change.cpp
@@ -1,17 +1,17 @@ -#include "rive/animation/event_bool_change.hpp" +#include "rive/animation/listener_bool_change.hpp" #include "rive/animation/state_machine_instance.hpp" #include "rive/animation/state_machine_bool.hpp" #include "rive/animation/state_machine_input_instance.hpp" using namespace rive; -bool EventBoolChange::validateInputType(const StateMachineInput* input) const { +bool ListenerBoolChange::validateInputType(const StateMachineInput* input) const { // A null input is valid as the StateMachine can attempt to limp along if we // introduce new input types that old conditions are expected to handle in // newer runtimes. The older runtimes will just evaluate them to true. return input == nullptr || input->is<StateMachineBool>(); } -void EventBoolChange::perform(StateMachineInstance* stateMachineInstance) const { +void ListenerBoolChange::perform(StateMachineInstance* stateMachineInstance) const { auto inputInstance = stateMachineInstance->input(inputId()); if (inputInstance == nullptr) { return;
diff --git a/src/animation/listener_input_change.cpp b/src/animation/listener_input_change.cpp new file mode 100644 index 0000000..a3e3e54 --- /dev/null +++ b/src/animation/listener_input_change.cpp
@@ -0,0 +1,27 @@ +#include "rive/animation/state_machine_listener.hpp" +#include "rive/importers/import_stack.hpp" +#include "rive/importers/state_machine_listener_importer.hpp" +#include "rive/importers/state_machine_importer.hpp" +#include "rive/animation/listener_input_change.hpp" +#include "rive/animation/state_machine.hpp" + +using namespace rive; + +StatusCode ListenerInputChange::import(ImportStack& importStack) { + auto stateMachineImporter = importStack.latest<StateMachineImporter>(StateMachine::typeKey); + if (stateMachineImporter == nullptr) { + return StatusCode::MissingObject; + } + + auto stateMachineListenerImporter = + importStack.latest<StateMachineListenerImporter>(StateMachineListenerBase::typeKey); + if (stateMachineListenerImporter == nullptr) { + return StatusCode::MissingObject; + } + + if (!validateInputType(stateMachineImporter->stateMachine()->input((size_t)inputId()))) { + return StatusCode::InvalidObject; + } + stateMachineListenerImporter->addInputChange(this); + return Super::import(importStack); +}
diff --git a/src/animation/event_number_change.cpp b/src/animation/listener_number_change.cpp similarity index 78% rename from src/animation/event_number_change.cpp rename to src/animation/listener_number_change.cpp index a97d306..33c8316 100644 --- a/src/animation/event_number_change.cpp +++ b/src/animation/listener_number_change.cpp
@@ -1,18 +1,18 @@ -#include "rive/animation/event_number_change.hpp" +#include "rive/animation/listener_number_change.hpp" #include "rive/animation/state_machine_instance.hpp" #include "rive/animation/state_machine_number.hpp" #include "rive/animation/state_machine_input_instance.hpp" using namespace rive; -bool EventNumberChange::validateInputType(const StateMachineInput* input) const { +bool ListenerNumberChange::validateInputType(const StateMachineInput* input) const { // A null input is valid as the StateMachine can attempt to limp along if we // introduce new input types that old conditions are expected to handle in // newer runtimes. The older runtimes will just evaluate them to true. return input == nullptr || input->is<StateMachineNumber>(); } -void EventNumberChange::perform(StateMachineInstance* stateMachineInstance) const { +void ListenerNumberChange::perform(StateMachineInstance* stateMachineInstance) const { auto inputInstance = stateMachineInstance->input(inputId()); if (inputInstance == nullptr) { return;
diff --git a/src/animation/event_trigger_change.cpp b/src/animation/listener_trigger_change.cpp similarity index 77% rename from src/animation/event_trigger_change.cpp rename to src/animation/listener_trigger_change.cpp index e2b8d9d..f1939e0 100644 --- a/src/animation/event_trigger_change.cpp +++ b/src/animation/listener_trigger_change.cpp
@@ -1,18 +1,18 @@ -#include "rive/animation/event_trigger_change.hpp" +#include "rive/animation/listener_trigger_change.hpp" #include "rive/animation/state_machine_instance.hpp" #include "rive/animation/state_machine_trigger.hpp" #include "rive/animation/state_machine_input_instance.hpp" using namespace rive; -bool EventTriggerChange::validateInputType(const StateMachineInput* input) const { +bool ListenerTriggerChange::validateInputType(const StateMachineInput* input) const { // A null input is valid as the StateMachine can attempt to limp along if we // introduce new input types that old conditions are expected to handle in // newer runtimes. The older runtimes will just evaluate them to true. return input == nullptr || input->is<StateMachineTrigger>(); } -void EventTriggerChange::perform(StateMachineInstance* stateMachineInstance) const { +void ListenerTriggerChange::perform(StateMachineInstance* stateMachineInstance) const { auto inputInstance = stateMachineInstance->input(inputId()); if (inputInstance == nullptr) { return;
diff --git a/src/animation/state_machine.cpp b/src/animation/state_machine.cpp index 0959b21..3d4a441 100644 --- a/src/animation/state_machine.cpp +++ b/src/animation/state_machine.cpp
@@ -3,7 +3,7 @@ #include "rive/importers/artboard_importer.hpp" #include "rive/animation/state_machine_layer.hpp" #include "rive/animation/state_machine_input.hpp" -#include "rive/animation/state_machine_event.hpp" +#include "rive/animation/state_machine_listener.hpp" using namespace rive; @@ -23,7 +23,7 @@ return code; } } - for (auto& object : m_Events) { + for (auto& object : m_Listeners) { if ((code = object->onAddedDirty(context)) != StatusCode::Ok) { return code; } @@ -43,7 +43,7 @@ return code; } } - for (auto& object : m_Events) { + for (auto& object : m_Listeners) { if ((code = object->onAddedClean(context)) != StatusCode::Ok) { return code; } @@ -68,8 +68,8 @@ m_Inputs.push_back(std::move(input)); } -void StateMachine::addEvent(std::unique_ptr<StateMachineEvent> event) { - m_Events.push_back(std::move(event)); +void StateMachine::addListener(std::unique_ptr<StateMachineListener> listener) { + m_Listeners.push_back(std::move(listener)); } const StateMachineInput* StateMachine::input(std::string name) const { @@ -104,9 +104,9 @@ return nullptr; } -const StateMachineEvent* StateMachine::event(size_t index) const { - if (index < m_Events.size()) { - return m_Events[index].get(); +const StateMachineListener* StateMachine::listener(size_t index) const { + if (index < m_Listeners.size()) { + return m_Listeners[index].get(); } return nullptr; } \ No newline at end of file
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp index 30d34fb..d7bbe98 100644 --- a/src/animation/state_machine_instance.cpp +++ b/src/animation/state_machine_instance.cpp
@@ -13,7 +13,7 @@ #include "rive/animation/animation_state.hpp" #include "rive/animation/state_instance.hpp" #include "rive/animation/animation_state_instance.hpp" -#include "rive/animation/state_machine_event.hpp" +#include "rive/animation/state_machine_listener.hpp" #include "rive/shapes/shape.hpp" #include "rive/math/aabb.hpp" #include "rive/math/hit_test.hpp" @@ -224,9 +224,9 @@ } }; - /// Representation of a Shape from the Artboard Instance and all the events it + /// Representation of a Shape from the Artboard Instance and all the listeners it /// triggers. Allows tracking hover and performing hit detection only once on - /// shapes that trigger multiple events. + /// shapes that trigger multiple listeners. class HitShape { private: Shape* m_Shape; @@ -235,11 +235,11 @@ Shape* shape() const { return m_Shape; } HitShape(Shape* shape) : m_Shape(shape) {} bool isHovered = false; - std::vector<const StateMachineEvent*> events; + std::vector<const StateMachineListener*> listeners; }; } // namespace rive -void StateMachineInstance::processEvent(Vec2D position, EventType hitEvent) { +void StateMachineInstance::updateListeners(Vec2D position, ListenerType hitType) { if (m_ArtboardInstance->frameOrigin()) { position -= Vec2D(m_ArtboardInstance->originX() * m_ArtboardInstance->width(), m_ArtboardInstance->originY() * m_ArtboardInstance->height()); @@ -261,21 +261,21 @@ bool hoverChange = hitShape->isHovered != isOver; hitShape->isHovered = isOver; - // iterate all events associated with this hit shape - for (auto event : hitShape->events) { - // Always update hover states regardless of which specific event type + // iterate all listeners associated with this hit shape + for (auto listener : hitShape->listeners) { + // Always update hover states regardless of which specific listener type // we're trying to trigger. if (hoverChange) { - if (isOver && event->eventType() == EventType::enter) { - event->performChanges(this); + if (isOver && listener->listenerType() == ListenerType::enter) { + listener->performChanges(this); markNeedsAdvance(); - } else if (!isOver && event->eventType() == EventType::exit) { - event->performChanges(this); + } else if (!isOver && listener->listenerType() == ListenerType::exit) { + listener->performChanges(this); markNeedsAdvance(); } } - if (isOver && hitEvent == event->eventType()) { - event->performChanges(this); + if (isOver && hitType == listener->listenerType()) { + listener->performChanges(this); markNeedsAdvance(); } } @@ -295,14 +295,14 @@ for (auto nestedAnimation : nestedArtboard->nestedAnimations()) { if (nestedAnimation->is<NestedStateMachine>()) { auto nestedStateMachine = nestedAnimation->as<NestedStateMachine>(); - switch (hitEvent) { - case EventType::down: + switch (hitType) { + case ListenerType::down: nestedStateMachine->pointerDown(nestedPosition); break; - case EventType::up: + case ListenerType::up: nestedStateMachine->pointerUp(nestedPosition); break; - case EventType::updateHover: + case ListenerType::updateHover: nestedStateMachine->pointerMove(nestedPosition); break; default: @@ -314,10 +314,14 @@ } void StateMachineInstance::pointerMove(Vec2D position) { - processEvent(position, EventType::updateHover); + updateListeners(position, ListenerType::updateHover); } -void StateMachineInstance::pointerDown(Vec2D position) { processEvent(position, EventType::down); } -void StateMachineInstance::pointerUp(Vec2D position) { processEvent(position, EventType::up); } +void StateMachineInstance::pointerDown(Vec2D position) { + updateListeners(position, ListenerType::down); +} +void StateMachineInstance::pointerUp(Vec2D position) { + updateListeners(position, ListenerType::up); +} StateMachineInstance::StateMachineInstance(const StateMachine* machine, ArtboardInstance* instance) : @@ -351,16 +355,16 @@ m_Layers[i].init(machine->layer(i), m_ArtboardInstance); } - // Initialize events. Store a lookup table of shape id to hit shape - // representation (an object that stores all the events triggered by the - // shape producing an event). + // Initialize listeners. Store a lookup table of shape id to hit shape + // representation (an object that stores all the listeners triggered by the + // shape producing a listener). std::unordered_map<uint32_t, HitShape*> hitShapeLookup; - for (std::size_t i = 0; i < machine->eventCount(); i++) { - auto event = machine->event(i); + for (std::size_t i = 0; i < machine->listenerCount(); i++) { + auto listener = machine->listener(i); - // Iterate actual leaf hittable shapes tied to this event and resolve + // Iterate actual leaf hittable shapes tied to this listener and resolve // corresponding ones in the artboard instance. - for (auto id : event->hitShapeIds()) { + for (auto id : listener->hitShapeIds()) { HitShape* hitShape; auto itr = hitShapeLookup.find(id); if (itr == hitShapeLookup.end()) { @@ -376,7 +380,7 @@ } else { hitShape = itr->second; } - hitShape->events.push_back(event); + hitShape->listeners.push_back(listener); } }
diff --git a/src/animation/state_machine_event.cpp b/src/animation/state_machine_listenable.cpp similarity index 73% rename from src/animation/state_machine_event.cpp rename to src/animation/state_machine_listenable.cpp index bd17743..36e54b5 100644 --- a/src/animation/state_machine_event.cpp +++ b/src/animation/state_machine_listenable.cpp
@@ -1,36 +1,36 @@ -#include "rive/animation/state_machine_event.hpp" +#include "rive/animation/state_machine_listener.hpp" #include "rive/importers/import_stack.hpp" #include "rive/importers/state_machine_importer.hpp" #include "rive/generated/animation/state_machine_base.hpp" #include "rive/artboard.hpp" #include "rive/shapes/shape.hpp" #include "rive/animation/state_machine_instance.hpp" -#include "rive/animation/event_input_change.hpp" +#include "rive/animation/listener_input_change.hpp" using namespace rive; -void StateMachineEvent::addInputChange(EventInputChange* inputChange) { +void StateMachineListener::addInputChange(ListenerInputChange* inputChange) { m_InputChanges.push_back(inputChange); } -StatusCode StateMachineEvent::import(ImportStack& importStack) { +StatusCode StateMachineListener::import(ImportStack& importStack) { auto stateMachineImporter = importStack.latest<StateMachineImporter>(StateMachineBase::typeKey); if (stateMachineImporter == nullptr) { return StatusCode::MissingObject; } // Handing off ownership of this! - stateMachineImporter->addEvent(std::unique_ptr<StateMachineEvent>(this)); + stateMachineImporter->addListener(std::unique_ptr<StateMachineListener>(this)); return Super::import(importStack); } -const EventInputChange* StateMachineEvent::inputChange(size_t index) const { +const ListenerInputChange* StateMachineListener::inputChange(size_t index) const { if (index < m_InputChanges.size()) { return m_InputChanges[index]; } return nullptr; } -StatusCode StateMachineEvent::onAddedClean(CoreContext* context) { +StatusCode StateMachineListener::onAddedClean(CoreContext* context) { auto artboard = static_cast<Artboard*>(context); auto target = artboard->resolve(targetId()); @@ -59,7 +59,7 @@ return Super::onAddedClean(context); } -void StateMachineEvent::performChanges(StateMachineInstance* stateMachineInstance) const { +void StateMachineListener::performChanges(StateMachineInstance* stateMachineInstance) const { for (auto inputChange : m_InputChanges) { inputChange->perform(stateMachineInstance); }
diff --git a/src/artboard.cpp b/src/artboard.cpp index 349e81e..dffdf8c 100644 --- a/src/artboard.cpp +++ b/src/artboard.cpp
@@ -71,7 +71,7 @@ // Animations and StateMachines initialize only once on the source/origin // Artboard. Instances will hold references to the original Animations and StateMachines, so // running this code for instances will effectively initialize them twice. This can lead to - // unpredictable behaviour. One such example was that resolved objects like event inputs were + // unpredictable behaviour. One such example was that resolved objects like listener inputs were // being added to lists twice. if (!isInstance()) { for (auto object : m_Animations) {
diff --git a/src/file.cpp b/src/file.cpp index 3f1bdb8..a231f9c 100644 --- a/src/file.cpp +++ b/src/file.cpp
@@ -14,7 +14,7 @@ #include "rive/importers/keyed_property_importer.hpp" #include "rive/importers/linear_animation_importer.hpp" #include "rive/importers/state_machine_importer.hpp" -#include "rive/importers/state_machine_event_importer.hpp" +#include "rive/importers/state_machine_listener_importer.hpp" #include "rive/importers/state_machine_layer_importer.hpp" #include "rive/importers/layer_state_importer.hpp" #include "rive/importers/state_transition_importer.hpp" @@ -75,9 +75,8 @@ if (id == -1) { // Still couldn't find it, give up. - fprintf(stderr, - "Unknown property key %d, missing from property ToC.\n", - propertyKey); + fprintf( + stderr, "Unknown property key %d, missing from property ToC.\n", propertyKey); delete object; return nullptr; } @@ -108,18 +107,17 @@ return object; } -File::File(Factory* factory, FileAssetResolver* assetResolver) - : m_Factory(factory) - , m_AssetResolver(assetResolver) -{ +File::File(Factory* factory, FileAssetResolver* assetResolver) : + m_Factory(factory), m_AssetResolver(assetResolver) { assert(factory); } File::~File() {} -std::unique_ptr<File> -File::import(Span<const uint8_t> bytes, Factory* factory, - ImportResult* result, FileAssetResolver* assetResolver) { +std::unique_ptr<File> File::import(Span<const uint8_t> bytes, + Factory* factory, + ImportResult* result, + FileAssetResolver* assetResolver) { BinaryReader reader(bytes); RuntimeHeader header; if (!RuntimeHeader::read(reader, header)) { @@ -230,11 +228,12 @@ stackObject = new StateTransitionImporter(object->as<StateTransition>()); stackType = StateTransition::typeKey; break; - case StateMachineEvent::typeKey: - stackObject = new StateMachineEventImporter(object->as<StateMachineEvent>()); + case StateMachineListener::typeKey: + stackObject = new StateMachineListenerImporter(object->as<StateMachineListener>()); break; case ImageAsset::typeKey: - stackObject = new FileAssetImporter(object->as<FileAsset>(), m_AssetResolver, m_Factory); + stackObject = + new FileAssetImporter(object->as<FileAsset>(), m_AssetResolver, m_Factory); stackType = FileAsset::typeKey; break; } @@ -244,8 +243,8 @@ } } - return !reader.hasError() && importStack.resolve() == StatusCode::Ok - ? ImportResult::success : ImportResult::malformed; + return !reader.hasError() && importStack.resolve() == StatusCode::Ok ? ImportResult::success + : ImportResult::malformed; } Artboard* File::artboard(std::string name) const {
diff --git a/src/generated/animation/event_bool_change_base.cpp b/src/generated/animation/event_bool_change_base.cpp deleted file mode 100644 index 722a754..0000000 --- a/src/generated/animation/event_bool_change_base.cpp +++ /dev/null
@@ -1,10 +0,0 @@ -#include "rive/generated/animation/event_bool_change_base.hpp" -#include "rive/animation/event_bool_change.hpp" - -using namespace rive; - -Core* EventBoolChangeBase::clone() const { - auto cloned = new EventBoolChange(); - cloned->copy(*this); - return cloned; -}
diff --git a/src/generated/animation/event_number_change_base.cpp b/src/generated/animation/event_number_change_base.cpp deleted file mode 100644 index 64eb85a..0000000 --- a/src/generated/animation/event_number_change_base.cpp +++ /dev/null
@@ -1,10 +0,0 @@ -#include "rive/generated/animation/event_number_change_base.hpp" -#include "rive/animation/event_number_change.hpp" - -using namespace rive; - -Core* EventNumberChangeBase::clone() const { - auto cloned = new EventNumberChange(); - cloned->copy(*this); - return cloned; -}
diff --git a/src/generated/animation/event_trigger_change_base.cpp b/src/generated/animation/event_trigger_change_base.cpp deleted file mode 100644 index 4a78dfe..0000000 --- a/src/generated/animation/event_trigger_change_base.cpp +++ /dev/null
@@ -1,10 +0,0 @@ -#include "rive/generated/animation/event_trigger_change_base.hpp" -#include "rive/animation/event_trigger_change.hpp" - -using namespace rive; - -Core* EventTriggerChangeBase::clone() const { - auto cloned = new EventTriggerChange(); - cloned->copy(*this); - return cloned; -}
diff --git a/src/generated/animation/listener_bool_change_base.cpp b/src/generated/animation/listener_bool_change_base.cpp new file mode 100644 index 0000000..0b756d5 --- /dev/null +++ b/src/generated/animation/listener_bool_change_base.cpp
@@ -0,0 +1,10 @@ +#include "rive/generated/animation/listener_bool_change_base.hpp" +#include "rive/animation/listener_bool_change.hpp" + +using namespace rive; + +Core* ListenerBoolChangeBase::clone() const { + auto cloned = new ListenerBoolChange(); + cloned->copy(*this); + return cloned; +}
diff --git a/src/generated/animation/listener_number_change_base.cpp b/src/generated/animation/listener_number_change_base.cpp new file mode 100644 index 0000000..8051ae2 --- /dev/null +++ b/src/generated/animation/listener_number_change_base.cpp
@@ -0,0 +1,10 @@ +#include "rive/generated/animation/listener_number_change_base.hpp" +#include "rive/animation/listener_number_change.hpp" + +using namespace rive; + +Core* ListenerNumberChangeBase::clone() const { + auto cloned = new ListenerNumberChange(); + cloned->copy(*this); + return cloned; +}
diff --git a/src/generated/animation/listener_trigger_change_base.cpp b/src/generated/animation/listener_trigger_change_base.cpp new file mode 100644 index 0000000..732933b --- /dev/null +++ b/src/generated/animation/listener_trigger_change_base.cpp
@@ -0,0 +1,10 @@ +#include "rive/generated/animation/listener_trigger_change_base.hpp" +#include "rive/animation/listener_trigger_change.hpp" + +using namespace rive; + +Core* ListenerTriggerChangeBase::clone() const { + auto cloned = new ListenerTriggerChange(); + cloned->copy(*this); + return cloned; +}
diff --git a/src/generated/animation/state_machine_event_base.cpp b/src/generated/animation/state_machine_event_base.cpp deleted file mode 100644 index 0ba8a2b..0000000 --- a/src/generated/animation/state_machine_event_base.cpp +++ /dev/null
@@ -1,10 +0,0 @@ -#include "rive/generated/animation/state_machine_event_base.hpp" -#include "rive/animation/state_machine_event.hpp" - -using namespace rive; - -Core* StateMachineEventBase::clone() const { - auto cloned = new StateMachineEvent(); - cloned->copy(*this); - return cloned; -}
diff --git a/src/generated/animation/state_machine_listener_base.cpp b/src/generated/animation/state_machine_listener_base.cpp new file mode 100644 index 0000000..a5315fc --- /dev/null +++ b/src/generated/animation/state_machine_listener_base.cpp
@@ -0,0 +1,10 @@ +#include "rive/generated/animation/state_machine_listener_base.hpp" +#include "rive/animation/state_machine_listener.hpp" + +using namespace rive; + +Core* StateMachineListenerBase::clone() const { + auto cloned = new StateMachineListener(); + cloned->copy(*this); + return cloned; +}
diff --git a/src/importers/state_machine_event_importer.cpp b/src/importers/state_machine_event_importer.cpp deleted file mode 100644 index 9d8fd3c..0000000 --- a/src/importers/state_machine_event_importer.cpp +++ /dev/null
@@ -1,13 +0,0 @@ -#include "rive/importers/state_machine_event_importer.hpp" -#include "rive/animation/state_machine_event.hpp" - -using namespace rive; - -StateMachineEventImporter::StateMachineEventImporter(StateMachineEvent* event) : - m_StateMachineEvent(event) {} - -void StateMachineEventImporter::addInputChange(EventInputChange* change) { - m_StateMachineEvent->addInputChange(change); -} - -StatusCode StateMachineEventImporter::resolve() { return StatusCode::Ok; } \ No newline at end of file
diff --git a/src/importers/state_machine_importer.cpp b/src/importers/state_machine_importer.cpp index c6aa5a3..f5aa9aa 100644 --- a/src/importers/state_machine_importer.cpp +++ b/src/importers/state_machine_importer.cpp
@@ -1,6 +1,6 @@ #include "rive/importers/state_machine_importer.hpp" #include "rive/animation/state_machine.hpp" -#include "rive/animation/state_machine_event.hpp" +#include "rive/animation/state_machine_listener.hpp" #include "rive/animation/state_machine_input.hpp" #include "rive/animation/state_machine_layer.hpp" @@ -16,8 +16,8 @@ m_StateMachine->addInput(std::move(input)); } -void StateMachineImporter::addEvent(std::unique_ptr<StateMachineEvent> event) { - m_StateMachine->addEvent(std::move(event)); +void StateMachineImporter::addListener(std::unique_ptr<StateMachineListener> listener) { + m_StateMachine->addListener(std::move(listener)); } bool StateMachineImporter::readNullObject() {
diff --git a/src/importers/state_machine_listener_importer.cpp b/src/importers/state_machine_listener_importer.cpp new file mode 100644 index 0000000..bf403af --- /dev/null +++ b/src/importers/state_machine_listener_importer.cpp
@@ -0,0 +1,13 @@ +#include "rive/importers/state_machine_listener_importer.hpp" +#include "rive/animation/state_machine_listener.hpp" + +using namespace rive; + +StateMachineListenerImporter::StateMachineListenerImporter(StateMachineListener* listener) : + m_StateMachineListener(listener) {} + +void StateMachineListenerImporter::addInputChange(ListenerInputChange* change) { + m_StateMachineListener->addInputChange(change); +} + +StatusCode StateMachineListenerImporter::resolve() { return StatusCode::Ok; } \ No newline at end of file
diff --git a/test/state_machine_event_test.cpp b/test/state_machine_event_test.cpp index 9bc81cf..5e9b462 100644 --- a/test/state_machine_event_test.cpp +++ b/test/state_machine_event_test.cpp
@@ -2,7 +2,7 @@ #include <rive/file.hpp> #include <rive/animation/state_machine_bool.hpp> #include <rive/animation/state_machine_layer.hpp> -#include <rive/animation/state_machine_event.hpp> +#include <rive/animation/state_machine_listener.hpp> #include <rive/animation/animation_state.hpp> #include <rive/animation/entry_state.hpp> #include <rive/animation/state_transition.hpp> @@ -12,13 +12,13 @@ #include <rive/animation/blend_animation_1d.hpp> #include <rive/animation/blend_state_direct.hpp> #include <rive/animation/blend_state_transition.hpp> -#include <rive/animation/event_input_change.hpp> +#include <rive/animation/listener_input_change.hpp> #include <rive/node.hpp> #include "catch.hpp" #include "rive_file_reader.hpp" #include <cstdio> -TEST_CASE("file with state machine events be read", "[file]") { +TEST_CASE("file with state machine listeners be read", "[file]") { auto file = ReadRiveFile("../../test/assets/bullet_man.riv"); auto artboard = file->artboard("Bullet Man"); @@ -28,34 +28,34 @@ auto stateMachine = artboard->stateMachine(0); REQUIRE(stateMachine != nullptr); - REQUIRE(stateMachine->eventCount() == 3); + REQUIRE(stateMachine->listenerCount() == 3); REQUIRE(stateMachine->inputCount() == 4); - // Expect each of the three events to have one input change each. - auto event1 = stateMachine->event(0); - auto target1 = artboard->resolve(event1->targetId()); + // Expect each of the three listeners to have one input change each. + auto listener1 = stateMachine->listener(0); + auto target1 = artboard->resolve(listener1->targetId()); REQUIRE(target1->is<rive::Node>()); REQUIRE(target1->as<rive::Node>()->name() == "HandWickHit"); - REQUIRE(event1->inputChangeCount() == 1); - auto inputChange1 = event1->inputChange(0); + REQUIRE(listener1->inputChangeCount() == 1); + auto inputChange1 = listener1->inputChange(0); REQUIRE(inputChange1 != nullptr); REQUIRE(inputChange1->inputId() == 0); - auto event2 = stateMachine->event(1); - auto target2 = artboard->resolve(event2->targetId()); + auto listener2 = stateMachine->listener(1); + auto target2 = artboard->resolve(listener2->targetId()); REQUIRE(target2->is<rive::Node>()); REQUIRE(target2->as<rive::Node>()->name() == "HandCannonHit"); - REQUIRE(event2->inputChangeCount() == 1); - auto inputChange2 = event2->inputChange(0); + REQUIRE(listener2->inputChangeCount() == 1); + auto inputChange2 = listener2->inputChange(0); REQUIRE(inputChange2 != nullptr); REQUIRE(inputChange2->inputId() == 1); - auto event3 = stateMachine->event(2); - auto target3 = artboard->resolve(event3->targetId()); + auto listener3 = stateMachine->listener(2); + auto target3 = artboard->resolve(listener3->targetId()); REQUIRE(target3->is<rive::Node>()); REQUIRE(target3->as<rive::Node>()->name() == "HandHelmetHit"); - REQUIRE(event3->inputChangeCount() == 1); - auto inputChange3 = event3->inputChange(0); + REQUIRE(listener3->inputChangeCount() == 1); + auto inputChange3 = listener3->inputChange(0); REQUIRE(inputChange3 != nullptr); REQUIRE(inputChange3->inputId() == 2); } @@ -82,7 +82,7 @@ REQUIRE(trigger->didFire()); } -TEST_CASE("hit a toggle boolean event", "[file]") { +TEST_CASE("hit a toggle boolean listener", "[file]") { auto file = ReadRiveFile("../../test/assets/light_switch.riv"); auto artboard = file->artboard()->instance();