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_ARROW_H
00026 #define GCHEMPAINT_ARROW_H
00027
00028 #include <gcu/object.h>
00029
00030 using namespace gcu;
00031
00032 namespace gcp {
00033
00034 enum
00035 {
00036 SimpleArrow,
00037 ReversibleArrow,
00038 FullReversibleArrow,
00039 };
00040
00041 class Arrow: public Object
00042 {
00043 public:
00044 Arrow(TypeId Type);
00045 virtual ~Arrow();
00046
00047 virtual bool Load (xmlNodePtr);
00048 virtual void SetSelected (GtkWidget* w, int state);
00049 void SetCoords (double xstart, double ystart, double xend, double yend);
00050 bool GetCoords (double* xstart, double* ystart, double* xend, double* yend);
00051 virtual void Move (double x, double y, double z = 0);
00052 virtual void Transform2D (Matrix2D& m, double x, double y);
00053 virtual double GetYAlign ();
00054
00055 protected:
00056 bool Save (xmlDocPtr xml, xmlNodePtr node);
00057
00058 protected:
00059 double m_x, m_y, m_width, m_height;
00060 };
00061
00062 }
00063
00064 #endif //GCHEMPAINT_ARROW_H