Code

Split SPCanvasItem and SPCanvasGroup to individual .h files. Removed forward header.
[inkscape.git] / src / xml / helper-observer.h
1 #ifndef __XML_HELPER_OBSERVER__
2 #define __XML_HELPER_OBSERVER__
4 #include "node-observer.h"
5 #include "node.h"
6 #include "../sp-object.h"
7 //#include "../sp-object-repr.h"
8 #include <sigc++/sigc++.h>
10 namespace Inkscape {
11     namespace XML {
12         class Node;
14                 // Very simple observer that just emits a signal if anything happens to a node
15                 class SignalObserver : public NodeObserver
16                 {
17                 public:
18                         SignalObserver();
20                         // Add this observer to the SPObject and remove it from any previous object
21                         void set(SPObject* o);
22                         void notifyChildAdded(Node&, Node&, Node*);
23                         void notifyChildRemoved(Node&, Node&, Node*);
24                         void notifyChildOrderChanged(Node&, Node&, Node*, Node*);
25                         void notifyContentChanged(Node&, Util::ptr_shared<char>, Util::ptr_shared<char>);
26                         void notifyAttributeChanged(Node&, GQuark, Util::ptr_shared<char>, Util::ptr_shared<char>);
27                         sigc::signal<void>& signal_changed();
28                 private:
29                         sigc::signal<void> _signal_changed;
30                         SPObject* _oldsel;
31                 };
32         }
33 }
35 #endif //#ifndef __XML_HELPER_OBSERVER__