mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-26 03:12:07 -05:00
LibWeb: Add CharacterData and Text IDL interfaces
This commit is contained in:
parent
354f9aafd5
commit
73645e11c4
7 changed files with 36 additions and 6 deletions
|
@ -24,17 +24,18 @@
|
|||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <LibWeb/Bindings/DocumentWrapper.h>
|
||||
#include <LibWeb/Bindings/CharacterDataWrapper.h>
|
||||
#include <LibWeb/Bindings/DocumentTypeWrapper.h>
|
||||
#include <LibWeb/Bindings/DocumentWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLAnchorElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLBodyElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLBRElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLBodyElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLCanvasElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLFormElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLHRElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLHeadElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLHeadingElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLHRElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLHtmlElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLIFrameElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLImageElementWrapper.h>
|
||||
|
@ -48,15 +49,17 @@
|
|||
#include <LibWeb/Bindings/HTMLTableRowElementWrapper.h>
|
||||
#include <LibWeb/Bindings/HTMLTitleElementWrapper.h>
|
||||
#include <LibWeb/Bindings/NodeWrapper.h>
|
||||
#include <LibWeb/Bindings/TextWrapper.h>
|
||||
#include <LibWeb/DOM/Document.h>
|
||||
#include <LibWeb/DOM/Node.h>
|
||||
#include <LibWeb/HTML/HTMLAnchorElement.h>
|
||||
#include <LibWeb/HTML/HTMLBodyElement.h>
|
||||
#include <LibWeb/HTML/HTMLBRElement.h>
|
||||
#include <LibWeb/HTML/HTMLBodyElement.h>
|
||||
#include <LibWeb/HTML/HTMLCanvasElement.h>
|
||||
#include <LibWeb/HTML/HTMLFormElement.h>
|
||||
#include <LibWeb/HTML/HTMLHRElement.h>
|
||||
#include <LibWeb/HTML/HTMLHeadElement.h>
|
||||
#include <LibWeb/HTML/HTMLHeadingElement.h>
|
||||
#include <LibWeb/HTML/HTMLHRElement.h>
|
||||
#include <LibWeb/HTML/HTMLHtmlElement.h>
|
||||
#include <LibWeb/HTML/HTMLIFrameElement.h>
|
||||
#include <LibWeb/HTML/HTMLImageElement.h>
|
||||
|
@ -69,7 +72,6 @@
|
|||
#include <LibWeb/HTML/HTMLTableElement.h>
|
||||
#include <LibWeb/HTML/HTMLTableRowElement.h>
|
||||
#include <LibWeb/HTML/HTMLTitleElement.h>
|
||||
#include <LibWeb/DOM/Node.h>
|
||||
|
||||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
@ -124,6 +126,10 @@ NodeWrapper* wrap(JS::GlobalObject& global_object, DOM::Node& node)
|
|||
return static_cast<NodeWrapper*>(wrap_impl(global_object, downcast<HTML::HTMLElement>(node)));
|
||||
if (is<DOM::Element>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, downcast<DOM::Element>(node)));
|
||||
if (is<DOM::Text>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, downcast<DOM::Text>(node)));
|
||||
if (is<DOM::CharacterData>(node))
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, downcast<DOM::CharacterData>(node)));
|
||||
return static_cast<NodeWrapper*>(wrap_impl(global_object, node));
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ set(SOURCES
|
|||
CSS/StyleValue.cpp
|
||||
DOM/AttributeNames.cpp
|
||||
DOM/CharacterData.cpp
|
||||
DOM/CharacterData.idl
|
||||
DOM/Comment.cpp
|
||||
DOM/Document.cpp
|
||||
DOM/DocumentType.cpp
|
||||
|
@ -37,6 +38,7 @@ set(SOURCES
|
|||
DOM/Position.cpp
|
||||
DOM/TagNames.cpp
|
||||
DOM/Text.cpp
|
||||
DOM/Text.idl
|
||||
DOM/Timer.cpp
|
||||
DOM/Window.cpp
|
||||
DOM/XMLHttpRequest.cpp
|
||||
|
@ -162,12 +164,14 @@ function(libweb_js_wrapper class)
|
|||
add_custom_target(generate_${basename}Wrapper.cpp DEPENDS Bindings/${class}Wrapper.cpp)
|
||||
endfunction()
|
||||
|
||||
libweb_js_wrapper(DOM/CharacterData)
|
||||
libweb_js_wrapper(DOM/Document)
|
||||
libweb_js_wrapper(DOM/DocumentType)
|
||||
libweb_js_wrapper(DOM/Element)
|
||||
libweb_js_wrapper(DOM/Event)
|
||||
libweb_js_wrapper(DOM/EventTarget)
|
||||
libweb_js_wrapper(DOM/Node)
|
||||
libweb_js_wrapper(DOM/Text)
|
||||
libweb_js_wrapper(HTML/CanvasRenderingContext2D)
|
||||
libweb_js_wrapper(HTML/HTMLAnchorElement)
|
||||
libweb_js_wrapper(HTML/HTMLBodyElement)
|
||||
|
|
|
@ -36,11 +36,15 @@ class CharacterData
|
|||
: public Node
|
||||
, public NonDocumentTypeChildNode<CharacterData> {
|
||||
public:
|
||||
using WrapperType = Bindings::CharacterDataWrapper;
|
||||
|
||||
virtual ~CharacterData() override;
|
||||
|
||||
const String& data() const { return m_data; }
|
||||
void set_data(const String& data) { m_data = data; }
|
||||
|
||||
unsigned length() const { return m_data.length(); }
|
||||
|
||||
virtual String text_content() const override { return m_data; }
|
||||
|
||||
protected:
|
||||
|
|
9
Libraries/LibWeb/DOM/CharacterData.idl
Normal file
9
Libraries/LibWeb/DOM/CharacterData.idl
Normal file
|
@ -0,0 +1,9 @@
|
|||
interface CharacterData : Node {
|
||||
|
||||
attribute DOMString data;
|
||||
readonly attribute unsigned long length;
|
||||
|
||||
readonly attribute Element? nextElementSibling;
|
||||
readonly attribute Element? previousElementSibling;
|
||||
|
||||
}
|
|
@ -34,6 +34,8 @@ namespace Web::DOM {
|
|||
|
||||
class Text final : public CharacterData {
|
||||
public:
|
||||
using WrapperType = Bindings::TextWrapper;
|
||||
|
||||
explicit Text(Document&, const String&);
|
||||
virtual ~Text() override;
|
||||
|
||||
|
|
3
Libraries/LibWeb/DOM/Text.idl
Normal file
3
Libraries/LibWeb/DOM/Text.idl
Normal file
|
@ -0,0 +1,3 @@
|
|||
interface Text : CharacterData {
|
||||
|
||||
}
|
|
@ -91,6 +91,7 @@ class XMLHttpRequest;
|
|||
namespace Web::Bindings {
|
||||
|
||||
class CanvasRenderingContext2DWrapper;
|
||||
class CharacterDataWrapper;
|
||||
class DocumentTypeWrapper;
|
||||
class DocumentWrapper;
|
||||
class ElementWrapper;
|
||||
|
@ -122,6 +123,7 @@ class ImageDataWrapper;
|
|||
class LocationObject;
|
||||
class MouseEventWrapper;
|
||||
class NodeWrapper;
|
||||
class TextWrapper;
|
||||
class UIEventWrapper;
|
||||
class WindowObject;
|
||||
class Wrappable;
|
||||
|
|
Loading…
Add table
Reference in a new issue