Re-implemented LineObject.
[aesalon.git] / include / artisan / gviewport / BasicViewport.h
blob1449ff9353c569daeffe4820d84dcd8ffe870e53
1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file include/artisan/gviewport/BasicViewport.h
8 */
10 #ifndef AesalonArtisan_GViewport_BasicViewport_H
11 #define AesalonArtisan_GViewport_BasicViewport_H
13 #include "artisan/Viewport.h"
15 #include "Object.h"
16 #include "Data.h"
17 #include "RenderedImage.h"
19 namespace Artisan {
20 namespace GViewport {
22 class BasicViewport : public Viewport { Q_OBJECT
23 private:
24 Data *m_data;
25 RenderedImage m_image;
27 Rect m_rangeLimit;
28 public:
29 BasicViewport(Data *data);
30 virtual ~BasicViewport();
32 Data *data() const { return m_data; }
34 Rect rangeLimit() const { return m_rangeLimit; }
35 void limitRange(const Rect &newLimit) { m_rangeLimit = newLimit; }
37 void translate(const Point &upperLeft);
38 void scale(double factor);
40 void setViewport(const Rect &range);
41 public slots:
42 void acceptRenderedImage(RenderedImage *image);
43 void updateRange(const Rect &range);
44 protected:
45 virtual void resizeEvent(QResizeEvent *event);
46 virtual void paintEvent(QPaintEvent *event);
49 } // namespace GViewport
50 } // namespace Artisan
52 #endif