2
* XML::Subtree - proxy for an XML subtree
4
* Copyright 2005 MenTaLguY <mental@rydia.net>
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
11
* See the file COPYING for details.
16
#include "xml/subtree.h"
17
#include "xml/node-iterators.h"
22
Subtree::Subtree(Node &root) : _root(root) {
23
_root.addSubtreeObserver(_observers);
27
_root.removeSubtreeObserver(_observers);
32
void synthesize_events_recursive(Node &node, NodeObserver &observer) {
33
node.synthesizeEvents(observer);
34
for ( NodeSiblingIterator iter = node.firstChild() ; iter ; ++iter ) {
35
synthesize_events_recursive(*iter, observer);
41
void Subtree::synthesizeEvents(NodeObserver &observer) {
42
synthesize_events_recursive(_root, observer);
45
void Subtree::addObserver(NodeObserver &observer) {
46
_observers.add(observer);
49
void Subtree::removeObserver(NodeObserver &observer) {
50
_observers.remove(observer);
59
c-file-style:"stroustrup"
60
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
65
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :