annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
1 #pragma once
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
2
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
3 #include "../../Framework/Widgets/CairoWidget.h"
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
4 #include "../../Applications/Generic/BasicNativeApplicationContext.h"
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
5 #include "../../Framework/Viewport/CairoSurface.h"
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
6
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
7 #include <QWidget>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
8 #include <QGestureEvent>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
9 #include <memory>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
10 #include <cassert>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
11
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
12 class QCairoWidget : public QWidget, public OrthancStone::IViewport::IObserver
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
13 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
14 Q_OBJECT
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
15
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
16 private:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
17 std::auto_ptr<QImage> image_;
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
18 OrthancStone::CairoSurface surface_;
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
19 OrthancStone::BasicNativeApplicationContext* context_;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
20
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
21 protected:
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
22 virtual void paintEvent(QPaintEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
23
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
24 virtual void resizeEvent(QResizeEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
25
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
26 virtual void mouseMoveEvent(QMouseEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
27
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
28 virtual void mousePressEvent(QMouseEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
29
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
30 virtual void mouseReleaseEvent(QMouseEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
31
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
32 virtual void wheelEvent(QWheelEvent *event);
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
33
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
34 public:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
35 explicit QCairoWidget(QWidget *parent);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
36
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
37 virtual ~QCairoWidget();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
38
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
39 void SetContext(OrthancStone::BasicNativeApplicationContext& context);
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
40
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
41 virtual void OnViewportContentChanged(const OrthancStone::IViewport& /*sceneNotUsed*/)
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
42 {
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
43 update(); // schedule a repaint (handled by Qt)
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
44 emit ContentChanged();
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
45 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
46
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
47 signals:
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
48
277
a38465cc909f Qt: refresh ok + mouse interaction ok
am@osimis.io
parents: 276
diff changeset
49 void ContentChanged();
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
50
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
51 public slots:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
52
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
53 };