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