1/* 2 * Copyright (C) 2014 Igalia S.L. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19#ifndef WebKitDOMNodeFilter_h 20#define WebKitDOMNodeFilter_h 21 22#include <glib-object.h> 23#include <webkitdom/webkitdomdefines.h> 24 25G_BEGIN_DECLS 26 27#define WEBKIT_DOM_TYPE_NODE_FILTER (webkit_dom_node_filter_get_type ()) 28#define WEBKIT_DOM_NODE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilter)) 29#define WEBKIT_DOM_NODE_FILTER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilterIface)) 30#define WEBKIT_DOM_IS_NODE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_DOM_TYPE_NODE_FILTER)) 31#define WEBKIT_DOM_NODE_FILTER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilterIface)) 32 33/** 34 * WEBKIT_DOM_NODE_FILTER_ACCEPT: 35 * 36 * Accept the node. Use this macro as return value of webkit_dom_node_filter_accept_node() 37 * implementation to accept the given #WebKitDOMNode 38 * 39 * Since: 2.6 40 */ 41#define WEBKIT_DOM_NODE_FILTER_ACCEPT 1 42 43/** 44 * WEBKIT_DOM_NODE_FILTER_REJECT: 45 * 46 * Reject the node. Use this macro as return value of webkit_dom_node_filter_accept_node() 47 * implementation to reject the given #WebKitDOMNode. The children of the given node will 48 * be rejected too. 49 * 50 * Since: 2.6 51 */ 52#define WEBKIT_DOM_NODE_FILTER_REJECT 2 53 54/** 55 * WEBKIT_DOM_NODE_FILTER_SKIP: 56 * 57 * Skip the node. Use this macro as return value of webkit_dom_node_filter_accept_node() 58 * implementation to skip the given #WebKitDOMNode. The children of the given node will 59 * not be skipped. 60 * 61 * Since: 2.6 62 */ 63#define WEBKIT_DOM_NODE_FILTER_SKIP 3 64 65/** 66 * WEBKIT_DOM_NODE_FILTER_SHOW_ALL: 67 * 68 * Show all nodes. 69 * 70 * Since: 2.6 71 */ 72#define WEBKIT_DOM_NODE_FILTER_SHOW_ALL 0xFFFFFFFF 73 74/** 75 * WEBKIT_DOM_NODE_FILTER_SHOW_ELEMENT: 76 * 77 * Show #WebKitDOMElement nodes. 78 * 79 * Since: 2.6 80 */ 81#define WEBKIT_DOM_NODE_FILTER_SHOW_ELEMENT 0x00000001 82 83/** 84 * WEBKIT_DOM_NODE_FILTER_SHOW_ATTRIBUTE: 85 * 86 * Show #WebKitDOMAttr nodes. 87 * 88 * Since: 2.6 89 */ 90#define WEBKIT_DOM_NODE_FILTER_SHOW_ATTRIBUTE 0x00000002 91 92/** 93 * WEBKIT_DOM_NODE_FILTER_SHOW_TEXT: 94 * 95 * Show #WebKitDOMText nodes. 96 * 97 * Since: 2.6 98 */ 99#define WEBKIT_DOM_NODE_FILTER_SHOW_TEXT 0x00000004 100 101/** 102 * WEBKIT_DOM_NODE_FILTER_SHOW_CDATA_SECTION: 103 * 104 * Show #WebKitDOMCDataSection nodes. 105 * 106 * Since: 2.6 107 */ 108#define WEBKIT_DOM_NODE_FILTER_SHOW_CDATA_SECTION 0x00000008 109 110/** 111 * WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY_REFERENCE: 112 * 113 * Show #WebKitDOMEntityReference nodes. 114 * 115 * Since: 2.6 116 */ 117#define WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY_REFERENCE 0x00000010 118 119/** 120 * WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY: 121 * 122 * Show #WebKitDOMEntity nodes. 123 * 124 * Since: 2.6 125 */ 126#define WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY 0x00000020 127 128/** 129 * WEBKIT_DOM_NODE_FILTER_SHOW_PROCESSING_INSTRUCTION: 130 * 131 * Show #WebKitDOMProcessingInstruction nodes. 132 * 133 * Since: 2.6 134 */ 135#define WEBKIT_DOM_NODE_FILTER_SHOW_PROCESSING_INSTRUCTION 0x00000040 136 137/** 138 * WEBKIT_DOM_NODE_FILTER_SHOW_COMMENT: 139 * 140 * Show #WebKitDOMComment nodes. 141 * 142 * Since: 2.6 143 */ 144#define WEBKIT_DOM_NODE_FILTER_SHOW_COMMENT 0x00000080 145 146/** 147 * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT: 148 * 149 * Show #WebKitDOMDocument nodes. 150 * 151 * Since: 2.6 152 */ 153#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT 0x00000100 154 155/** 156 * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_TYPE: 157 * 158 * Show #WebKitDOMDocumentType nodes. 159 * 160 * Since: 2.6 161 */ 162#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_TYPE 0x00000200 163 164/** 165 * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_FRAGMENT: 166 * 167 * Show #WebKitDOMDocumentFragment nodes. 168 * 169 * Since: 2.6 170 */ 171#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_FRAGMENT 0x00000400 172 173/** 174 * WEBKIT_DOM_NODE_FILTER_SHOW_NOTATION: 175 * 176 * Show #WebKitDOMNotation nodes. 177 * 178 * Since: 2.6 179 */ 180#define WEBKIT_DOM_NODE_FILTER_SHOW_NOTATION 0x00000800 181 182struct _WebKitDOMNodeFilterIface { 183 GTypeInterface gIface; 184 185 /* virtual table */ 186 gshort (* accept_node)(WebKitDOMNodeFilter *filter, 187 WebKitDOMNode *node); 188 189 void (*_webkitdom_reserved0) (void); 190 void (*_webkitdom_reserved1) (void); 191 void (*_webkitdom_reserved2) (void); 192 void (*_webkitdom_reserved3) (void); 193}; 194 195 196WEBKIT_API GType webkit_dom_node_filter_get_type(void) G_GNUC_CONST; 197 198/** 199 * webkit_dom_node_filter_accept_node: 200 * @filter: A #WebKitDOMNodeFilter 201 * @node: A #WebKitDOMNode 202 * 203 * Returns: a #gshort 204 */ 205WEBKIT_API gshort webkit_dom_node_filter_accept_node(WebKitDOMNodeFilter *filter, 206 WebKitDOMNode *node); 207 208G_END_DECLS 209 210#endif /* WebKitDOMNodeFilter_h */ 211