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 OST_GUI_ARGAND_H
00026 #define OST_GUI_ARGAND_H
00027
00028
00029 #include <ost/base.hh>
00030 #include <ost/img/data.hh>
00031 #include <ost/img/data_observer.hh>
00032 #include <ost/img/extent.hh>
00033
00034 #include <ost/gui/module_config.hh>
00035
00036 #include <QWidget>
00037 #include <QPixmap>
00038 namespace ost { namespace img { namespace gui {
00039
00040 class DLLEXPORT_OST_GUI Argand: public QWidget, public DataObserver
00041 {
00042 Q_OBJECT;
00043 public:
00044 Argand(const ImageHandle& data, QWidget* p);
00045 ~Argand();
00046
00047
00048 virtual void paintEvent(QPaintEvent* e);
00049 virtual void resizeEvent(QResizeEvent* e);
00050
00051 public slots:
00052 void SetCurrentPixel(const Point& p);
00053 void SetExtent(const Extent& e);
00054 void ClearExtent();
00055
00056 public:
00057 virtual void ObserverUpdate();
00058 virtual void ObserverUpdate(const Extent& e);
00059 virtual void ObserverUpdate(const Point& p);
00060 virtual void ObserverRelease();
00061
00062 private:
00063 Extent extent_;
00064 Point current_;
00065 bool has_data_;
00066 bool data_changed_;
00067 QPixmap* buffer_;
00068 Real sf_;
00069
00070 void update_buffer();
00071 };
00072
00073 }}}
00074
00075 #endif