reactant.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_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) const;
00043 virtual bool Load (xmlNodePtr);
00044
00045 unsigned GetStoichiometry () const {return m_Stoich;}
00046 void SetStoichiometry (unsigned coef) {m_Stoich = coef;}
00047 virtual double GetYAlign ();
00048 virtual bool BuildContextualMenu (GtkUIManager *UIManager, gcu::Object *object, double x, double y);
00049 virtual bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00050
00051 void AddStoichiometry ();
00052 gcu::Object *GetChild () {return Child;}
00053 gcu::Object *GetStoichChild () {return Stoichiometry;}
00054
00055 private:
00056 unsigned m_Stoich;
00057 gcu::Object *Stoichiometry;
00058 gcu::Object *Child;
00059 };
00060
00061 }
00062
00063 #endif // GCHEMPAINT_REACTANT_H