12#ifndef ZOAPPUIBUTTON_H
13#define ZOAPPUIBUTTON_H
15#include <nlohmann/json.hpp>
17#include "toymaker/sim_system.hpp"
18#include "toymaker/signals.hpp"
121 static std::shared_ptr<BaseSimObjectAspect>
create(
const nlohmann::json& jsonAspectProperties);
128 std::shared_ptr<BaseSimObjectAspect>
clone()
const override;
207 std::array<std::shared_ptr<NineSlicePanel>, State::TOTAL>
mStatePanels {};
358 {UIButton::State::ACTIVE,
"active"},
359 {UIButton::State::HOVER,
"hover"},
360 {UIButton::State::PRESSED,
"pressed"},
361 {UIButton::State::INACTIVE,
"inactive"},
The interface implemented by aspects which wish to respond to pointer hover related events.
Definition interface_pointer_callback.hpp:120
The interface used by aspects which wish to respond to mouse left click events (or equivalent).
Definition interface_pointer_callback.hpp:88
A Signal object, designed to emit signals matching some data signature to be received by all the Sign...
Definition signals.hpp:323
An object containing closely related methods and data, and exposing object lifecycle and application ...
Definition sim_system.hpp:956
Contains classes that serve as interfaces for sim objects that wish to respond to click events.
Contains class defining this project's implementation of nine-slice (or nine-region) resizable panels...