V8SVGElementInstanceCustom.cpp [plain text]
#include <config.h>
#if ENABLE(SVG)
#include "SVGElementInstance.h"
#include "EventListener.h"
#include "V8Binding.h"
#include "V8CustomBinding.h"
#include "V8CustomEventListener.h"
#include "V8SVGPODTypeWrapper.h"
#include "V8Proxy.h"
namespace WebCore {
CALLBACK_FUNC_DECL(SVGElementInstanceAddEventListener)
{
INC_STATS("DOM.SVGElementInstance.AddEventListener()");
SVGElementInstance* instance = V8DOMWrapper::convertDOMWrapperToNative<SVGElementInstance>(args.Holder());
V8Proxy* proxy = V8Proxy::retrieve(instance->scriptExecutionContext());
if (!proxy)
return v8::Undefined();
RefPtr<EventListener> listener = proxy->findOrCreateV8EventListener(args[1], false);
if (listener) {
String type = toWebCoreString(args[0]);
bool useCapture = args[2]->BooleanValue();
instance->addEventListener(type, listener, useCapture);
}
return v8::Undefined();
}
CALLBACK_FUNC_DECL(SVGElementInstanceRemoveEventListener)
{
INC_STATS("DOM.SVGElementInstance.RemoveEventListener()");
SVGElementInstance* instance = V8DOMWrapper::convertDOMWrapperToNative<SVGElementInstance>(args.Holder());
V8Proxy* proxy = V8Proxy::retrieve(instance->scriptExecutionContext());
if (!proxy)
return v8::Undefined();
RefPtr<EventListener> listener = proxy->findV8EventListener(args[1], false);
if (listener) {
String type = toWebCoreString(args[0]);
bool useCapture = args[2]->BooleanValue();
instance->removeEventListener(type, listener.get(), useCapture);
}
return v8::Undefined();
}
}
#endif