reaction-step.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCHEMPAINT_REACTION_STEP_H
00026 #define GCHEMPAINT_REACTION_STEP_H
00027
00028 #include <gcu/object.h>
00029 #include <gccv/structs.h>
00030 #include <set>
00031
00033 namespace gcp {
00034
00035 class Reaction;
00036 class ReactionArrow;
00037
00038 extern gcu::TypeId ReactionStepType;
00039
00048 class ReactionStep: public gcu::Object
00049 {
00050 public:
00054 ReactionStep ();
00058 virtual ~ReactionStep ();
00059
00068 ReactionStep (Reaction *reaction, std::map<double, gcu::Object*>& Children, std::map<gcu::Object*, gccv::Rect> Objects);
00069
00077 void Add (GtkWidget* w) const;
00084 xmlNodePtr Save (xmlDocPtr xml) const;
00091 bool Load (xmlNodePtr node);
00096 double GetYAlign ();
00107 bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00108
00114 void AddArrow (ReactionArrow *arrow) {m_Arrows.insert (arrow);}
00121 void RemoveArrow (ReactionArrow *arrow);
00122
00123 private:
00124 bool m_bLoading;
00125 std::set<ReactionArrow *> m_Arrows;
00126 };
00127
00128 }
00129
00130 #endif // GCHEMPAINT_REACTION_STEP_H