Logo Search packages:      
Sourcecode: inkscape version File versions  Download package

helper-observer.cpp

#include "helper-observer.h"

namespace Inkscape {
namespace XML {

// Very simple observer that just emits a signal if anything happens to a node
SignalObserver::SignalObserver()
    : _oldsel(0)
{}

// Add this observer to the SPObject and remove it from any previous object
void SignalObserver::set(SPObject* o)
{
    if(_oldsel && _oldsel->repr)
        _oldsel->repr->removeObserver(*this);
    if(o && o->repr)
        o->repr->addObserver(*this);
    _oldsel = o;
00019 }

void SignalObserver::notifyChildAdded(XML::Node&, XML::Node&, XML::Node*)
00022 { signal_changed()(); }

void SignalObserver::notifyChildRemoved(XML::Node&, XML::Node&, XML::Node*)
00025 { signal_changed()(); }

void SignalObserver::notifyChildOrderChanged(XML::Node&, XML::Node&, XML::Node*, XML::Node*)
00028 { signal_changed()(); }

void SignalObserver::notifyContentChanged(XML::Node&, Util::ptr_shared<char>, Util::ptr_shared<char>)
00031 {}

void SignalObserver::notifyAttributeChanged(XML::Node&, GQuark, Util::ptr_shared<char>, Util::ptr_shared<char>)
{ signal_changed()(); }

sigc::signal<void>& SignalObserver::signal_changed()
{
    return _signal_changed;
}

} //namespace XML
} //namespace Inkscape


Generated by  Doxygen 1.6.0   Back to index