DataController.cpp 917 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "DataController.h"
  2. #include "../../Include/RmlUi/Core/Element.h"
  3. #include "EventSpecification.h"
  4. namespace Rml {
  5. DataController::DataController(Element* element) : attached_element(element->GetObserverPtr()) {}
  6. DataController::~DataController() {}
  7. Element* DataController::GetElement() const
  8. {
  9. return attached_element.get();
  10. }
  11. bool DataController::IsValid() const
  12. {
  13. return static_cast<bool>(attached_element);
  14. }
  15. DataControllers::DataControllers() {}
  16. DataControllers::~DataControllers() {}
  17. void DataControllers::Add(DataControllerPtr controller)
  18. {
  19. RMLUI_ASSERT(controller);
  20. Element* element = controller->GetElement();
  21. RMLUI_ASSERTMSG(element, "Invalid controller, make sure it is valid before adding");
  22. if (!element)
  23. return;
  24. controllers.emplace(element, std::move(controller));
  25. }
  26. void DataControllers::OnElementRemove(Element* element)
  27. {
  28. controllers.erase(element);
  29. }
  30. } // namespace Rml