WebKitDOMElement.cpp [plain text]
#include "config.h"
#include "WebKitDOMElement.h"
#include "DOMObjectCache.h"
#include "WebKitDOMElementPrivate.h"
#include "WebKitDOMNodePrivate.h"
#include "WebKitDOMPrivate.h"
#include <WebCore/HTMLInputElement.h>
#include <WebCore/HTMLTextAreaElement.h>
#if PLATFORM(GTK)
#include "WebKitDOMEventTarget.h"
#endif
namespace WebKit {
WebKitDOMElement* kit(WebCore::Element* obj)
{
return WEBKIT_DOM_ELEMENT(kit(static_cast<WebCore::Node*>(obj)));
}
WebCore::Element* core(WebKitDOMElement* element)
{
return element ? static_cast<WebCore::Element*>(webkitDOMNodeGetCoreObject(WEBKIT_DOM_NODE(element))) : nullptr;
}
WebKitDOMElement* wrapElement(WebCore::Element* coreObject)
{
ASSERT(coreObject);
#if PLATFORM(GTK)
return WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, "core-object", coreObject, nullptr));
#else
auto* element = WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, nullptr));
webkitDOMNodeSetCoreObject(WEBKIT_DOM_NODE(element), static_cast<WebCore::Node*>(coreObject));
return element;
#endif
}
}
#if PLATFORM(GTK)
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
G_DEFINE_TYPE_WITH_CODE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkitDOMElementDOMEventTargetInit))
G_GNUC_END_IGNORE_DEPRECATIONS;
#else
G_DEFINE_TYPE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE)
#endif
static void webkit_dom_element_class_init(WebKitDOMElementClass* elementClass)
{
#if PLATFORM(GTK)
GObjectClass* gobjectClass = G_OBJECT_CLASS(elementClass);
webkitDOMElementInstallProperties(gobjectClass);
#endif
}
static void webkit_dom_element_init(WebKitDOMElement*)
{
}
gboolean webkit_dom_element_html_input_element_is_user_edited(WebKitDOMElement* element)
{
g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(element), FALSE);
auto* node = webkitDOMNodeGetCoreObject(WEBKIT_DOM_NODE(element));
if (is<WebCore::HTMLInputElement>(node))
return downcast<WebCore::HTMLInputElement>(*node).lastChangeWasUserEdit();
if (is<WebCore::HTMLTextAreaElement>(node))
return downcast<WebCore::HTMLTextAreaElement>(*node).lastChangeWasUserEdit();
return FALSE;
}
gboolean webkit_dom_element_html_input_element_get_auto_filled(WebKitDOMElement* element)
{
g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(element), FALSE);
auto* node = webkitDOMNodeGetCoreObject(WEBKIT_DOM_NODE(element));
if (!is<WebCore::HTMLInputElement>(node))
return false;
return downcast<WebCore::HTMLInputElement>(*node).isAutoFilled();
}
void webkit_dom_element_html_input_element_set_auto_filled(WebKitDOMElement* element, gboolean autoFilled)
{
g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(element));
auto* node = webkitDOMNodeGetCoreObject(WEBKIT_DOM_NODE(element));
if (!is<WebCore::HTMLInputElement>(node))
return;
downcast<WebCore::HTMLInputElement>(*node).setAutoFilled(autoFilled);
}
void webkit_dom_element_html_input_element_set_editing_value(WebKitDOMElement* element, const char* value)
{
g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(element));
auto* node = webkitDOMNodeGetCoreObject(WEBKIT_DOM_NODE(element));
if (!is<WebCore::HTMLInputElement>(node))
return;
downcast<WebCore::HTMLInputElement>(*node).setEditingValue(String::fromUTF8(value));
}