From ef92357d79dc3caccab3c5b4e3fe31eb411bc22a Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 11 Jul 2007 01:04:21 +0000 Subject: Make CharacterData struct public (within library) Add Text. svn path=/trunk/dom/; revision=3398 --- src/core/text.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/core/text.c (limited to 'src/core/text.c') diff --git a/src/core/text.c b/src/core/text.c new file mode 100644 index 0000000..dd85bfe --- /dev/null +++ b/src/core/text.c @@ -0,0 +1,98 @@ +/* + * This file is part of libdom. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell + */ + +#include +#include + +#include "core/characterdata.h" +#include "utils/utils.h" + +struct dom_text { + struct dom_characterdata base; /**< Base node */ + + bool element_content_whitespace; /**< This node is element + * content whitespace */ +}; + +/** + * Split a text node at a given character offset + * + * \param text The node to split + * \param offset Character offset to split at + * \param result Pointer to location to receive new node + * \return DOM_NO_ERR on success, + * DOM_INDEX_SIZE_ERR if ::offset is greater than the + * number of characters in ::text, + * DOM_NO_MODIFICATION_ALLOWED_ERR if ::text is readonly. + * + * The returned node will be referenced. The client should unref the node + * once it has finished with it. + */ +dom_exception dom_text_split_text(struct dom_text *text, + unsigned long offset, struct dom_text **result) +{ + UNUSED(text); + UNUSED(offset); + UNUSED(result); + + return DOM_NOT_SUPPORTED_ERR; +} + +/** + * Determine if a text node contains element content whitespace + * + * \param text The node to consider + * \param result Pointer to location to receive result + * \return DOM_NO_ERR. + */ +dom_exception dom_text_get_is_element_content_whitespace( + struct dom_text *text, bool *result) +{ + *result = text->element_content_whitespace; + + return DOM_NO_ERR; +} + +/** + * Retrieve all text in Text nodes logically adjacent to a Text node + * + * \param text Text node to consider + * \param result Pointer to location to receive result + * \return DOM_NO_ERR. + */ +dom_exception dom_text_get_whole_text(struct dom_text *text, + struct dom_string **result) +{ + UNUSED(text); + UNUSED(result); + + return DOM_NOT_SUPPORTED_ERR; +} + +/** + * Replace the text of a Text node and all logically adjacent Text nodes + * + * \param text Text node to consider + * \param content Replacement content + * \param result Pointer to location to receive Text node + * \return DOM_NO_ERR on success, + * DOM_NO_MODIFICATION_ALLOWED_ERR if one of the Text nodes being + * replaced is readonly. + * + * The returned node will be referenced. The client should unref the node + * once it has finished with it. + */ +dom_exception dom_text_replace_whole_text(struct dom_text *text, + struct dom_string *content, struct dom_text **result) +{ + UNUSED(text); + UNUSED(content); + UNUSED(result); + + return DOM_NOT_SUPPORTED_ERR; +} + -- cgit v1.2.3