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_REACTANT_H
00026 #define GCHEMPAINT_REACTANT_H
00027
00028 #include <gcu/object.h>
00029
00030 using namespace gcu;
00031
00032 namespace gcp {
00033
00034 class ReactionStep;
00035
00036 class Reactant: public Object
00037 {
00038 public:
00039 Reactant ();
00040 virtual ~Reactant ();
00041
00042 Reactant (ReactionStep* step, Object* object) throw (std::invalid_argument);
00043
00044 virtual xmlNodePtr Save (xmlDocPtr xml);
00045 virtual bool Load (xmlNodePtr);
00046 unsigned GetStoich () {return m_Stoich;}
00047 void SetStoich (unsigned Stoich) {m_Stoich = Stoich;}
00048
00049 unsigned GetStoichiometry () {return m_Stoich;}
00050 void SetStoichiometry (unsigned coef) {m_Stoich = coef;}
00051 virtual double GetYAlign ();
00052 virtual bool BuildContextualMenu (GtkUIManager *UIManager, Object *object, double x, double y);
00053 virtual bool OnSignal (SignalId Signal, Object *Child);
00054
00055 void AddStoichiometry ();
00056 Object *GetChild () {return Child;}
00057 Object *GetStoichChild () {return Stoichiometry;}
00058
00059 private:
00060 unsigned m_Stoich;
00061 Object *Stoichiometry;
00062 Object *Child;
00063 };
00064
00065 }
00066
00067 #endif // GCHEMPAINT_REACTANT_H