Choreonoid  1.5
RootItem.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_ROOT_ITEM_H
6 #define CNOID_BASE_ROOT_ITEM_H
7 
8 #include "Item.h"
9 #include "ItemList.h"
10 #include "exportdecl.h"
11 
12 namespace cnoid {
13 
14 class Project;
15 class Item;
16 class RootItemImpl;
17 
23 class CNOID_EXPORT RootItem : public Item
24 {
25 public:
26  static void initializeClass(ExtensionManager* ext);
27  static RootItem* instance();
28  static RootItem* mainInstance(); // obsolete
29 
30  RootItem();
31  RootItem(const RootItem& org);
32  virtual ~RootItem();
33 
35  SignalProxy<void(Item* item)> sigSubTreeAdded();
36  SignalProxy<void(Item* item)> sigItemAdded();
37  SignalProxy<void(Item* item)> sigSubTreeMoved();
38  SignalProxy<void(Item* item)> sigItemMoved();
41  SignalProxy<void()> sigTreeChanged();
42 
44 
45 protected:
46 
47  virtual Item* doDuplicate() const;
48  virtual bool store(Archive& archive);
49  virtual bool restore(const Archive& archive);
50 
51 private:
52 
53  void initializeInstance();
54 
55  friend class Item;
56 
57  void notifyEventOnSubTreeAdded(Item* item);
58  void notifyEventOnSubTreeMoved(Item* item);
59  void notifyEventOnSubTreeRemoving(Item* item, bool isMoving);
60  void notifyEventOnSubTreeRemoved(Item* item, bool isMoving);
61 
62  void emitSigItemAssinged(Item* assigned, Item* srcItem);
63 
64  friend class RootItemImpl;
65  RootItemImpl* impl;
66 };
67 
69 
70 }
71 
72 #endif
Definition: Archive.h:21
Definition: ExtensionManager.h:26
Definition: RootItem.h:23
ref_ptr< RootItem > RootItemPtr
Definition: RootItem.h:68
Definition: Item.h:38
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: Signal.h:380