comparison Applications/Qt/QCairoWidget.h @ 277:a38465cc909f am-2

Qt: refresh ok + mouse interaction ok
author am@osimis.io
date Mon, 27 Aug 2018 14:41:49 +0200
parents 5de5699ad570
children 829163c6efc1
comparison
equal deleted inserted replaced
276:5de5699ad570 277:a38465cc909f
7 #include <QWidget> 7 #include <QWidget>
8 #include <QGestureEvent> 8 #include <QGestureEvent>
9 #include <memory> 9 #include <memory>
10 #include <cassert> 10 #include <cassert>
11 11
12 class QCairoWidget : public QWidget 12 class QCairoWidget : public QWidget, public OrthancStone::IViewport::IObserver
13 { 13 {
14 Q_OBJECT 14 Q_OBJECT
15 15
16 private: 16 private:
17 std::auto_ptr<QImage> image_; 17 std::auto_ptr<QImage> image_;
18 OrthancStone::CairoSurface surface_; 18 OrthancStone::CairoSurface surface_;
19 OrthancStone::BasicNativeApplicationContext* context_; 19 OrthancStone::BasicNativeApplicationContext* context_;
20 bool isMouseOver_;
21 int mouseOverX_;
22 int mouseOverY_;
23 bool updateNeeded_;
24
25 std::auto_ptr<OrthancStone::IMouseTracker> mouseTracker_;
26
27 // void UpdateMouseCoordinates(int x,
28 // int y);
29 20
30 protected: 21 protected:
31 void paintEvent(QPaintEvent *event); 22 virtual void paintEvent(QPaintEvent *event);
32 23
33 void resizeEvent(QResizeEvent *event); 24 virtual void resizeEvent(QResizeEvent *event);
34 25
35 // void mouseMoveEvent(QMouseEvent *event); 26 virtual void mouseMoveEvent(QMouseEvent *event);
36 27
37 // void mousePressEvent(QMouseEvent *event); 28 virtual void mousePressEvent(QMouseEvent *event);
38 29
39 // void mouseReleaseEvent(QMouseEvent *event); 30 virtual void mouseReleaseEvent(QMouseEvent *event);
40 31
41 // void wheelEvent(QWheelEvent *event); 32 virtual void wheelEvent(QWheelEvent *event);
42 33
43 public: 34 public:
44 explicit QCairoWidget(QWidget *parent); 35 explicit QCairoWidget(QWidget *parent);
45 36
46 virtual ~QCairoWidget(); 37 virtual ~QCairoWidget();
47 38
48 void SetContext(OrthancStone::BasicNativeApplicationContext& context) 39 void SetContext(OrthancStone::BasicNativeApplicationContext& context);
40
41 virtual void OnViewportContentChanged(const OrthancStone::IViewport& /*sceneNotUsed*/)
49 { 42 {
50 context_ = &context; 43 update(); // schedule a repaint (handled by Qt)
44 emit ContentChanged();
51 } 45 }
52 46
53 // void SetCentralWidget(OrthancStone::CairoWidget& widget) 47 signals:
54 // {
55 // centralWidget_ = &widget;
56 // }
57 48
58 // void SetScene(OrthancStone::ICairoScene& scene); 49 void ContentChanged();
59
60 // bool HasScene() const
61 // {
62 // return scene_ != NULL;
63 // }
64
65 // OrthancStone::ICairoScene& GetScene() const
66 // {
67 // assert(HasScene());
68 // return *scene_;
69 // }
70
71 // virtual void SignalUpdatedScene(OrthancStone::ICairoScene& scene)
72 // {
73 // //printf("UPDATE NEEDED\n"); fflush(stdout);
74 // updateNeeded_ = true;
75 // }
76
77 signals:
78 // void SliceChanged(int position);
79
80 // void RangeChanged(unsigned int countSlices);
81
82 // void PositionChanged(const QString& position);
83
84 // void ContentChanged();
85 50
86 public slots: 51 public slots:
87 // void SetDefaultView();
88 52
89 // void Refresh();
90
91 // void SetSlice(int index);
92 }; 53 };