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_FRAGMENT_ATOM_H
00026 #define GCHEMPAINT_FRAGMENT_ATOM_H
00027
00028 #include "atom.h"
00029
00030 namespace gcp {
00031
00032 class Fragment;
00033
00034 class FragmentAtom: public Atom
00035 {
00036 public:
00037 FragmentAtom ();
00038 FragmentAtom (Fragment *fragment, int Z);
00039 virtual ~FragmentAtom ();
00040
00041 virtual void SetZ (int Z);
00042 virtual bool AcceptNewBonds (int nb);
00043 virtual void Add (GtkWidget* w);
00044 virtual void Update ();
00045 virtual void Update (GtkWidget* w);
00046 virtual void SetSelected (GtkWidget* w, int state);
00047 virtual xmlNodePtr Save (xmlDocPtr xml);
00048 virtual bool Load (xmlNodePtr node);
00049 virtual int GetChargePosition (unsigned char& Pos, double Angle, double& x, double& y);
00050 virtual int GetAvailablePosition (double& x, double& y);
00051 virtual bool GetPosition (double angle, double& x, double& y);
00052 virtual bool AcceptCharge (int charge);
00053
00059 virtual void AddToMolecule (Molecule* Mol);
00060
00061 private:
00062 Fragment *m_Fragment;
00063 };
00064
00065 }
00066
00067 #endif // GCHEMPAINT_FRAGMENT_ATOM_H