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_PROP_H
00026 #define GCHEMPAINT_REACTION_PROP_H
00027
00028 #include <gcu/object.h>
00029 #include <gcu/dialog-owner.h>
00030 #include <gcu/macros.h>
00031
00032 namespace gcp {
00033
00034 using namespace gcu;
00035
00036 extern TypeId ReactionPropType;
00037 class ReactionArrow;
00038
00039 enum {
00040 REACTION_PROP_UNKNOWN,
00041 REACTION_PROP_CATALYST,
00042 REACTION_PROP_REACTANT,
00043 REACTION_PROP_PRODUCT,
00044 REACTION_PROP_SOLVENT,
00045 REACTION_PROP_MAX_MOL,
00046 REACTION_PROP_TEMPERATURE = REACTION_PROP_MAX_MOL,
00047 REACTION_PROP_PRESSURE,
00048 REACTION_PROP_TIME,
00049 REACTION_PROP_ENTHALPY,
00050 REACTION_PROP_MAX,
00051 };
00052
00053 extern char const *ReactionPropRoles[];
00054
00059 class ReactionProp: public Object, public DialogOwner
00060 {
00061 public:
00062 ReactionProp ();
00063 ReactionProp (ReactionArrow *parent, Object *child);
00064 ~ReactionProp ();
00065
00066 xmlNodePtr Save (xmlDocPtr xml);
00067 bool Load (xmlNodePtr);
00068 bool OnSignal (SignalId Signal, Object *Child);
00069
00070 private:
00071 GCU_RO_PROP (Object*, Object);
00072 GCU_PROP (unsigned, Role);
00073 };
00074
00075 }
00076
00077
00078 #endif // GCHEMPAINT_REACTION_PROP_H