1/* 2 This file is part of the WebKit open source project. 3 This file has been generated by generate-bindings.pl. DO NOT MODIFY! 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public License 16 along with this library; see the file COPYING.LIB. If not, write to 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19*/ 20 21#include "config.h" 22#include "WebKitDOMTestEventTarget.h" 23 24#include "CSSImportRule.h" 25#include "DOMObjectCache.h" 26#include "ExceptionCode.h" 27#include "GObjectEventListener.h" 28#include "JSMainThreadExecState.h" 29#include "WebKitDOMEventPrivate.h" 30#include "WebKitDOMEventTarget.h" 31#include "WebKitDOMNodePrivate.h" 32#include "WebKitDOMPrivate.h" 33#include "WebKitDOMTestEventTargetPrivate.h" 34#include "gobject/ConvertToUTF8String.h" 35#include <wtf/GetPtr.h> 36#include <wtf/RefPtr.h> 37 38#define WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, WebKitDOMTestEventTargetPrivate) 39 40typedef struct _WebKitDOMTestEventTargetPrivate { 41 RefPtr<WebCore::TestEventTarget> coreObject; 42} WebKitDOMTestEventTargetPrivate; 43 44namespace WebKit { 45 46WebKitDOMTestEventTarget* kit(WebCore::TestEventTarget* obj) 47{ 48 if (!obj) 49 return 0; 50 51 if (gpointer ret = DOMObjectCache::get(obj)) 52 return WEBKIT_DOM_TEST_EVENT_TARGET(ret); 53 54 return wrapTestEventTarget(obj); 55} 56 57WebCore::TestEventTarget* core(WebKitDOMTestEventTarget* request) 58{ 59 return request ? static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; 60} 61 62WebKitDOMTestEventTarget* wrapTestEventTarget(WebCore::TestEventTarget* coreObject) 63{ 64 ASSERT(coreObject); 65 return WEBKIT_DOM_TEST_EVENT_TARGET(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, "core-object", coreObject, NULL)); 66} 67 68} // namespace WebKit 69 70static void webkit_dom_test_event_target_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) 71{ 72 WebCore::Event* coreEvent = WebKit::core(event); 73 WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject); 74 75 WebCore::ExceptionCode ec = 0; 76 coreTarget->dispatchEvent(coreEvent, ec); 77 if (ec) { 78 WebCore::ExceptionCodeDescription description(ec); 79 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), description.code, description.name); 80 } 81} 82 83static gboolean webkit_dom_test_event_target_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble, gpointer userData) 84{ 85 WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject); 86 return WebCore::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble, userData); 87} 88 89static gboolean webkit_dom_test_event_target_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble) 90{ 91 WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject); 92 return WebCore::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble); 93} 94 95static void webkit_dom_event_target_init(WebKitDOMEventTargetIface* iface) 96{ 97 iface->dispatch_event = webkit_dom_test_event_target_dispatch_event; 98 iface->add_event_listener = webkit_dom_test_event_target_add_event_listener; 99 iface->remove_event_listener = webkit_dom_test_event_target_remove_event_listener; 100} 101 102G_DEFINE_TYPE_WITH_CODE(WebKitDOMTestEventTarget, webkit_dom_test_event_target, WEBKIT_TYPE_DOM_OBJECT, G_IMPLEMENT_INTERFACE(WEBKIT_TYPE_DOM_EVENT_TARGET, webkit_dom_event_target_init)) 103 104static void webkit_dom_test_event_target_finalize(GObject* object) 105{ 106 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(object); 107 108 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 109 110 priv->~WebKitDOMTestEventTargetPrivate(); 111 G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->finalize(object); 112} 113 114static GObject* webkit_dom_test_event_target_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 115{ 116 GObject* object = G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 117 118 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(object); 119 priv->coreObject = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(object)->coreObject); 120 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 121 122 return object; 123} 124 125static void webkit_dom_test_event_target_class_init(WebKitDOMTestEventTargetClass* requestClass) 126{ 127 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 128 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestEventTargetPrivate)); 129 gobjectClass->constructor = webkit_dom_test_event_target_constructor; 130 gobjectClass->finalize = webkit_dom_test_event_target_finalize; 131} 132 133static void webkit_dom_test_event_target_init(WebKitDOMTestEventTarget* request) 134{ 135 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(request); 136 new (priv) WebKitDOMTestEventTargetPrivate(); 137} 138 139WebKitDOMNode* 140webkit_dom_test_event_target_item(WebKitDOMTestEventTarget* self, gulong index) 141{ 142 WebCore::JSMainThreadNullState state; 143 g_return_val_if_fail(WEBKIT_DOM_IS_TEST_EVENT_TARGET(self), 0); 144 WebCore::TestEventTarget* item = WebKit::core(self); 145 RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->item(index)); 146 return WebKit::kit(gobjectResult.get()); 147} 148 149gboolean 150webkit_dom_test_event_target_dispatch_event(WebKitDOMTestEventTarget* self, WebKitDOMEvent* evt, GError** error) 151{ 152 WebCore::JSMainThreadNullState state; 153 g_return_val_if_fail(WEBKIT_DOM_IS_TEST_EVENT_TARGET(self), FALSE); 154 g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(evt), FALSE); 155 g_return_val_if_fail(!error || !*error, FALSE); 156 WebCore::TestEventTarget* item = WebKit::core(self); 157 WebCore::Event* convertedEvt = WebKit::core(evt); 158 WebCore::ExceptionCode ec = 0; 159 gboolean result = item->dispatchEvent(convertedEvt, ec); 160 if (ec) { 161 WebCore::ExceptionCodeDescription ecdesc(ec); 162 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 163 } 164 return result; 165} 166 167