reaction-arrow.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_ARROW_H
00026 #define GCHEMPAINT_REACTION_ARROW_H
00027
00028 #include "arrow.h"
00029
00030 namespace gcp {
00031
00032 class ReactionStep;
00033 class Reaction;
00034 class ReactionProp;
00035
00036 class ReactionArrow: public Arrow
00037 {
00038 public:
00039 ReactionArrow (Reaction* react, unsigned Type = SimpleArrow);
00040 virtual ~ReactionArrow ();
00041
00042 xmlNodePtr Save (xmlDocPtr xml) const;
00043 bool Load (xmlNodePtr);
00044 void Add (GtkWidget* w) const;
00045 void Update (GtkWidget* w) const;
00046 void SetStartStep (ReactionStep *Step) {m_Start = Step;}
00047 ReactionStep* GetStartStep () {return m_Start;}
00048 void SetEndStep (ReactionStep *Step) {m_End = Step;}
00049 ReactionStep* GetEndStep () {return m_End;}
00050 void RemoveStep (ReactionStep *Step);
00051 bool BuildContextualMenu (GtkUIManager *UIManager, gcu::Object *object, double x, double y);
00052 void Move (double x, double y, double z = 0);
00053 void SetSelected (GtkWidget* w, int state);
00054 void AddProp (gcu::Object *object);
00055 bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00056 bool SetProperty (unsigned property, char const *value);
00057
00058 private:
00059 unsigned m_Type;
00060 bool m_TypeChanged;
00061 ReactionStep *m_Start, *m_End;
00062 };
00063
00064 }
00065
00066 #endif // GCHEMPAINT_REACTION_ARROW_H