#include "config.h"
#include "JSEvent.h"
#include "Clipboard.h"
#include "Event.h"
#include "JSKeyboardEvent.h"
#include "JSMouseEvent.h"
#include "JSMutationEvent.h"
#include "JSOverflowEvent.h"
#include "JSTextEvent.h"
#include "JSUIEvent.h"
#include "JSWheelEvent.h"
#include "KeyboardEvent.h"
#include "MouseEvent.h"
#include "MutationEvent.h"
#include "OverflowEvent.h"
#include "TextEvent.h"
#include "UIEvent.h"
#include "WheelEvent.h"
#include "kjs_events.h"
namespace WebCore {
KJS::JSValue* JSEvent::clipboardData(KJS::ExecState* exec) const
{
return impl()->isClipboardEvent() ? toJS(exec, impl()->clipboardData()) : KJS::jsUndefined();
}
KJS::JSValue* toJS(KJS::ExecState* exec, Event* event)
{
KJS::JSLock lock;
if (!event)
return KJS::jsNull();
KJS::ScriptInterpreter* interp = static_cast<KJS::ScriptInterpreter*>(exec->dynamicInterpreter());
KJS::DOMObject* ret = interp->getDOMObject(event);
if (ret)
return ret;
if (event->isKeyboardEvent())
ret = new JSKeyboardEvent(exec, static_cast<KeyboardEvent*>(event));
else if (event->isTextEvent())
ret = new JSTextEvent(exec, static_cast<TextEvent*>(event));
else if (event->isMouseEvent())
ret = new JSMouseEvent(exec, static_cast<MouseEvent*>(event));
else if (event->isWheelEvent())
ret = new JSWheelEvent(exec, static_cast<WheelEvent*>(event));
else if (event->isUIEvent())
ret = new JSUIEvent(exec, static_cast<UIEvent*>(event));
else if (event->isMutationEvent())
ret = new JSMutationEvent(exec, static_cast<MutationEvent*>(event));
else if (event->isOverflowEvent())
ret = new JSOverflowEvent(exec, static_cast<OverflowEvent*>(event));
else
ret = new JSEvent(exec, event);
interp->putDOMObject(event, ret);
return ret;
}
}