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