Files
Webcam/include/engine/ui/ui_event_handler.cpp

49 lines
1.3 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "ui/ui_event_handler.h"
using namespace GS::S2D;
//------------------------------------------------------------------------------
EventHandler *EventTable::GetHandler(EventCode code) const
{
ListForeachPtr(EventHandler *, h, handler_list)
if (h->GetCode() == code)
return h;
return NULL;
}
EventHandler *EventTable::SetHandler(EventCode code, GS::Script::Object *h, GS::Script::Object *c)
{
EventHandler *handler = GetHandler(code);
if (!handler)
{
handler = new EventHandler(code);
handler_list.Add(handler);
}
handler->handler = h;
handler->context = c;
return handler;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void EventTable::DeleteHandler(EventCode code)
{
handler_list.Remove(GetHandler(code));
}
bool EventTable::HasHandlerContext(EventCode code) const
{
EventHandler *handler = GetHandler(code);
if (!handler)
return false;
return asbool(handler);
}
//------------------------------------------------------------------------------