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 <set>
00030
00031 namespace gcp {
00032
00033 class Reaction;
00034 class ReactionArrow;
00035
00036 extern gcu::TypeId ReactionStepType;
00037
00038 class ReactionStep: public gcu::Object
00039 {
00040 public:
00041 ReactionStep ();
00042 virtual ~ReactionStep ();
00043
00044 ReactionStep (Reaction *reaction, std::map<double, gcu::Object*>& Children, std::map<gcu::Object*, ArtDRect> Objects);
00045
00046 void Add (GtkWidget* w);
00047 virtual xmlNodePtr Save (xmlDocPtr xml);
00048 virtual bool Load (xmlNodePtr);
00049 virtual double GetYAlign ();
00050 virtual bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00051
00052 void AddArrow (ReactionArrow *arrow) {m_Arrows.insert (arrow);}
00053 void RemoveArrow (ReactionArrow *arrow);
00054
00055 private:
00056 bool m_bLoading;
00057 std::set<ReactionArrow *> m_Arrows;
00058 };
00059
00060 }
00061
00062 #endif // GCHEMPAINT_REACTION_STEP_H