Mercurial > hg > orthanc-stone
comparison Applications/Qt/QCairoWidget.h @ 276:5de5699ad570 am-2
first display in QCairoWidget; no mouse interaction yet
author | am@osimis.io |
---|---|
date | Mon, 27 Aug 2018 12:21:52 +0200 |
parents | |
children | a38465cc909f |
comparison
equal
deleted
inserted
replaced
275:58e23e0dd86a | 276:5de5699ad570 |
---|---|
1 #pragma once | |
2 | |
3 #include "../../Framework/Widgets/CairoWidget.h" | |
4 #include "../../Applications/Generic/BasicNativeApplicationContext.h" | |
5 #include "../../Framework/Viewport/CairoSurface.h" | |
6 | |
7 #include <QWidget> | |
8 #include <QGestureEvent> | |
9 #include <memory> | |
10 #include <cassert> | |
11 | |
12 class QCairoWidget : public QWidget | |
13 { | |
14 Q_OBJECT | |
15 | |
16 private: | |
17 std::auto_ptr<QImage> image_; | |
18 OrthancStone::CairoSurface surface_; | |
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 | |
30 protected: | |
31 void paintEvent(QPaintEvent *event); | |
32 | |
33 void resizeEvent(QResizeEvent *event); | |
34 | |
35 // void mouseMoveEvent(QMouseEvent *event); | |
36 | |
37 // void mousePressEvent(QMouseEvent *event); | |
38 | |
39 // void mouseReleaseEvent(QMouseEvent *event); | |
40 | |
41 // void wheelEvent(QWheelEvent *event); | |
42 | |
43 public: | |
44 explicit QCairoWidget(QWidget *parent); | |
45 | |
46 virtual ~QCairoWidget(); | |
47 | |
48 void SetContext(OrthancStone::BasicNativeApplicationContext& context) | |
49 { | |
50 context_ = &context; | |
51 } | |
52 | |
53 // void SetCentralWidget(OrthancStone::CairoWidget& widget) | |
54 // { | |
55 // centralWidget_ = &widget; | |
56 // } | |
57 | |
58 // void SetScene(OrthancStone::ICairoScene& scene); | |
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 | |
86 public slots: | |
87 // void SetDefaultView(); | |
88 | |
89 // void Refresh(); | |
90 | |
91 // void SetSlice(int index); | |
92 }; |