This commit is contained in:
Isuru Samarathunga
2025-10-18 14:13:36 +05:30
parent 57bc80f4f9
commit fb66a2d09d
10 changed files with 157 additions and 51 deletions

View File

@ -57,33 +57,33 @@ namespace ia::iae
VOID AddClickListener(IN Rml::Element *element, IN std::function<VOID()> callback)
{
element->AddEventListener("click", this);
element->AddEventListener(Rml::EventId::Click, this);
m_clickCallbacks[element->GetId().c_str()] = callback;
}
// VOID AddHoverEnterListener(IN PCCHAR elementId, IN std::function<VOID()> callback)
//{
// m_document->GetElementById(elementId)->AddEventListener("mouseover", this);
// m_hoverEnterCallbacks[elementId] = callback;
// }
//
// VOID AddHoverExitListener(IN PCCHAR elementId, IN std::function<VOID()> callback)
//{
// m_document->GetElementById(elementId)->AddEventListener("mouseout", this);
// m_hoverExitCallbacks[elementId] = callback;
//}
//
// VOID AddPointerDownListener(IN PCCHAR elementId, IN std::function<VOID()> callback)
//{
// m_document->GetElementById(elementId)->AddEventListener("mousedown", this);
// m_pointerDownCallbacks[elementId] = callback;
//}
//
// VOID AddPointerUpListener(IN PCCHAR elementId, IN std::function<VOID()> callback)
//{
// m_document->GetElementById(elementId)->AddEventListener("mouseup", this);
// m_pointerUpCallbacks[elementId] = callback;
//}
VOID AddPointerDownListener(IN Rml::Element *element, IN std::function<VOID()> callback)
{
element->AddEventListener(Rml::EventId::Mousedown, this);
m_pointerDownCallbacks[element->GetId().c_str()] = callback;
}
VOID AddPointerUpListener(IN Rml::Element *element, IN std::function<VOID()> callback)
{
element->AddEventListener(Rml::EventId::Mouseup, this);
m_pointerUpCallbacks[element->GetId().c_str()] = callback;
}
VOID AddPointerEnterListener(IN Rml::Element *element, IN std::function<VOID()> callback)
{
element->AddEventListener(Rml::EventId::Mouseover, this);
m_hoverEnterCallbacks[element->GetId().c_str()] = callback;
}
VOID AddPointerExitListener(IN Rml::Element *element, IN std::function<VOID()> callback)
{
element->AddEventListener(Rml::EventId::Mouseout, this);
m_hoverExitCallbacks[element->GetId().c_str()] = callback;
}
VOID ProcessEvent(IN Rml::Event &event)
{
@ -101,13 +101,15 @@ namespace ia::iae
m_hoverExitCallbacks[event.GetTargetElement()->GetId().c_str()]();
break;
case Rml::EventId::Mousedown:
case Rml::EventId::Mousedown: {
m_pointerDownCallbacks[event.GetTargetElement()->GetId().c_str()]();
break;
}
break;
case Rml::EventId::Mouseup:
case Rml::EventId::Mouseup: {
m_pointerUpCallbacks[event.GetTargetElement()->GetId().c_str()]();
break;
}
break;
default:
break;
@ -490,6 +492,26 @@ namespace ia::iae
{
g_eventListener.AddClickListener(g_document->GetElementById(elementId), callback);
}
VOID UI::AddPointerUpEvent(IN PCCHAR elementId, IN std::function<VOID()> callback)
{
g_eventListener.AddPointerUpListener(g_document->GetElementById(elementId), callback);
}
VOID UI::AddPointerDownEvent(IN PCCHAR elementId, IN std::function<VOID()> callback)
{
g_eventListener.AddPointerDownListener(g_document->GetElementById(elementId), callback);
}
VOID UI::AddPointerExitEvent(IN PCCHAR elementId, IN std::function<VOID()> callback)
{
g_eventListener.AddPointerExitListener(g_document->GetElementById(elementId), callback);
}
VOID UI::AddPointerEnterEvent(IN PCCHAR elementId, IN std::function<VOID()> callback)
{
g_eventListener.AddPointerEnterListener(g_document->GetElementById(elementId), callback);
}
} // namespace ia::iae
namespace ia::iae