summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bindings/gobject/GObjectEventListener.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/bindings/gobject/GObjectEventListener.h')
-rw-r--r--Source/WebCore/bindings/gobject/GObjectEventListener.h31
1 files changed, 16 insertions, 15 deletions
diff --git a/Source/WebCore/bindings/gobject/GObjectEventListener.h b/Source/WebCore/bindings/gobject/GObjectEventListener.h
index ef1637a..6c85701 100644
--- a/Source/WebCore/bindings/gobject/GObjectEventListener.h
+++ b/Source/WebCore/bindings/gobject/GObjectEventListener.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Igalia S.L.
+ * Copyright (C) 2010, 2011 Igalia S.L.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,30 +19,30 @@
#ifndef GObjectEventListener_h
#define GObjectEventListener_h
-#include "DOMWindow.h"
#include "EventListener.h"
-#include "Node.h"
+#include "EventTarget.h"
#include <wtf/RefPtr.h>
#include <wtf/text/CString.h>
typedef struct _GObject GObject;
+typedef void (*GCallback) (void);
namespace WebCore {
class GObjectEventListener : public EventListener {
public:
- static void addEventListener(GObject* object, DOMWindow* window, const char* domEventName, const char* signalName)
+ static bool addEventListener(GObject* object, EventTarget* target, const char* domEventName, GCallback handler, bool useCapture, void* userData)
{
- RefPtr<GObjectEventListener> listener(adoptRef(new GObjectEventListener(object, window, 0, domEventName, signalName)));
- window->addEventListener(domEventName, listener.release(), false);
+ RefPtr<GObjectEventListener> listener(adoptRef(new GObjectEventListener(object, target, domEventName, handler, useCapture, userData)));
+ return target->addEventListener(domEventName, listener.release(), useCapture);
}
- static void addEventListener(GObject* object, Node* node, const char* domEventName, const char* signalName)
+ static bool removeEventListener(GObject* object, EventTarget* target, const char* domEventName, GCallback handler, bool useCapture)
{
- RefPtr<GObjectEventListener> listener(adoptRef(new GObjectEventListener(object, 0, node, domEventName, signalName)));
- node->addEventListener(domEventName, listener.release(), false);
+ GObjectEventListener key(object, target, domEventName, handler, useCapture, 0);
+ return target->removeEventListener(domEventName, &key, useCapture);
}
static void gobjectDestroyedCallback(GObjectEventListener* listener, GObject*)
@@ -60,7 +60,7 @@ public:
virtual bool operator==(const EventListener& other);
private:
- GObjectEventListener(GObject*, DOMWindow*, Node*, const char* domEventName, const char* signalName);
+ GObjectEventListener(GObject*, EventTarget*, const char* domEventName, GCallback handler, bool capture, void* userData);
~GObjectEventListener();
void gobjectDestroyed();
@@ -68,12 +68,13 @@ private:
GObject* m_object;
- // We do not need to keep a reference to these WebCore objects, because
- // we only use them when the GObject and thus the WebCore object is alive.
- Node* m_coreNode;
- DOMWindow* m_coreWindow;
+ // We do not need to keep a reference to the m_coreTarget, because
+ // we only use it when the GObject and thus the m_coreTarget object is alive.
+ EventTarget* m_coreTarget;
CString m_domEventName;
- CString m_signalName;
+ GCallback m_handler;
+ bool m_capture;
+ void* m_userData;
};
} // namespace WebCore