2 * Copyright © 2002 Jorn Baayen <jorn@nl.linux.org>
3 * Copyright © 2003 Marco Pesenti Gritti
4 * Copyright © 2003 Christian Persch
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 * $Id: ephy-node.h 6952 2007-03-11 19:42:02Z chpe $
26 #include <libxml/tree.h>
27 #include <libxml/xmlwriter.h>
31 #define EPHY_TYPE_NODE (ephy_node_get_type ())
32 #define EPHY_IS_NODE(o) (o != NULL)
34 typedef struct _EphyNode EphyNode
;
38 EPHY_NODE_DESTROY
, /* EphyNode *node */
39 EPHY_NODE_RESTORED
, /* EphyNode *node */
40 EPHY_NODE_CHANGED
, /* EphyNode *node, guint property_id */
41 EPHY_NODE_CHILD_ADDED
, /* EphyNode *node, EphyNode *child */
42 EPHY_NODE_CHILD_CHANGED
, /* EphyNode *node, EphyNode *child, guint property_id */
43 EPHY_NODE_CHILD_REMOVED
, /* EphyNode *node, EphyNode *child, guint old_index */
44 EPHY_NODE_CHILDREN_REORDERED
/* EphyNode *node, int *new_order */
47 #include "ephy-node-db.h"
49 typedef void (*EphyNodeCallback
) (EphyNode
*node
, ...);
50 typedef gboolean (*EphyNodeFilterFunc
) (EphyNode
*, gpointer
);
52 GType
ephy_node_get_type (void) G_GNUC_CONST
;
54 EphyNode
*ephy_node_new (EphyNodeDb
*db
);
56 EphyNode
*ephy_node_new_with_id (EphyNodeDb
*db
,
59 EphyNodeDb
*ephy_node_get_db (EphyNode
*node
);
62 guint
ephy_node_get_id (EphyNode
*node
);
65 void ephy_node_ref (EphyNode
*node
);
66 void ephy_node_unref (EphyNode
*node
);
69 int ephy_node_signal_connect_object (EphyNode
*node
,
70 EphyNodeSignalType type
,
71 EphyNodeCallback callback
,
74 guint
ephy_node_signal_disconnect_object (EphyNode
*node
,
75 EphyNodeSignalType type
,
76 EphyNodeCallback callback
,
79 void ephy_node_signal_disconnect (EphyNode
*node
,
83 void ephy_node_set_property (EphyNode
*node
,
86 gboolean
ephy_node_get_property (EphyNode
*node
,
90 const char *ephy_node_get_property_string (EphyNode
*node
,
92 void ephy_node_set_property_string (EphyNode
*node
,
95 gboolean
ephy_node_get_property_boolean (EphyNode
*node
,
97 void ephy_node_set_property_boolean (EphyNode
*node
,
100 long ephy_node_get_property_long (EphyNode
*node
,
102 void ephy_node_set_property_long (EphyNode
*node
,
105 int ephy_node_get_property_int (EphyNode
*node
,
107 void ephy_node_set_property_int (EphyNode
*node
,
110 double ephy_node_get_property_double (EphyNode
*node
,
112 void ephy_node_set_property_double (EphyNode
*node
,
115 float ephy_node_get_property_float (EphyNode
*node
,
117 void ephy_node_set_property_float (EphyNode
*node
,
120 EphyNode
*ephy_node_get_property_node (EphyNode
*node
,
124 int ephy_node_write_to_xml (EphyNode
*node
,
125 xmlTextWriterPtr writer
);
126 EphyNode
*ephy_node_new_from_xml (EphyNodeDb
*db
,
127 xmlNodePtr xml_node
);
130 void ephy_node_add_child (EphyNode
*node
,
132 void ephy_node_remove_child (EphyNode
*node
,
134 void ephy_node_sort_children (EphyNode
*node
,
135 GCompareFunc compare_func
);
136 gboolean
ephy_node_has_child (EphyNode
*node
,
138 void ephy_node_reorder_children (EphyNode
*node
,
140 GPtrArray
*ephy_node_get_children (EphyNode
*node
);
141 int ephy_node_get_n_children (EphyNode
*node
);
142 EphyNode
*ephy_node_get_nth_child (EphyNode
*node
,
144 int ephy_node_get_child_index (EphyNode
*node
,
146 EphyNode
*ephy_node_get_next_child (EphyNode
*node
,
148 EphyNode
*ephy_node_get_previous_child (EphyNode
*node
,
150 void ephy_node_set_is_drag_source (EphyNode
*node
,
152 gboolean
ephy_node_get_is_drag_source (EphyNode
*node
);
153 void ephy_node_set_is_drag_dest (EphyNode
*node
,
155 gboolean
ephy_node_get_is_drag_dest (EphyNode
*node
);
159 #endif /* __EPHY_NODE_H */