SDWidget.h

Go to the documentation of this file.
00001 #ifndef BALL_VIEW_WIDGETS_SDWIDGET_H
00002 #define BALL_VIEW_WIDGETS_SDWIDGET_H
00003 
00004 #ifndef BALL_COMMON_GLOBAL_H
00005 # include <BALL/COMMON/global.h>
00006 #endif
00007 
00008 #ifndef BALL_DATATYPE_OPTIONS_H
00009 # include <BALL/DATATYPE/options.h>
00010 #endif
00011 
00012 #include <BALL/KERNEL/system.h>
00013 #include <QtGui/qwidget.h>
00014 
00015 namespace BALL
00016 {
00017   namespace VIEW
00018   {
00019 
00021     class BALL_VIEW_EXPORT SDWidget 
00022       : public QWidget
00023     {
00024       Q_OBJECT
00025 
00026       public:
00027     
00031 
00032         struct BALL_VIEW_EXPORT Option
00033         {   
00036           static const char* SHOW_HYDROGENS;
00037         };
00038 
00040         struct BALL_VIEW_EXPORT Default
00041         {
00042           static const bool SHOW_HYDROGENS;
00043         };
00044       
00046 
00048         SDWidget(QWidget *parent = 0, bool show_hydrogens = false);
00049 
00051         SDWidget(const System& system, QWidget *parent = 0, bool resize_to_parent = true);
00052   
00054         virtual ~SDWidget();
00055 
00059 
00060         Options options;
00061 
00064         void setDefaultOptions();
00066 
00068         void plot(const System& system, bool clear = true, bool create_sd = true);
00069 
00071         System& getSystem() {return system_;};
00072         
00074         const System& getSystem() const {return system_;};
00075 
00077         void setSystem(const System& system) {system_ = system;};
00078 
00080         void clear();
00081 
00082       protected:
00083         void paintEvent(QPaintEvent *event);
00084 
00085         QPointF getEndpoint_(QRectF& character_boundary, QPointF from, QPointF to);
00086         System system_;
00087 
00088         bool resize_to_parent_;
00089         bool clear_;
00090     };
00091 
00092   }
00093 }
00094 
00095 #endif