Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Applications/Qt/QCairoWidget.h Mon Aug 27 12:21:52 2018 +0200 @@ -0,0 +1,92 @@ +#pragma once + +#include "../../Framework/Widgets/CairoWidget.h" +#include "../../Applications/Generic/BasicNativeApplicationContext.h" +#include "../../Framework/Viewport/CairoSurface.h" + +#include <QWidget> +#include <QGestureEvent> +#include <memory> +#include <cassert> + +class QCairoWidget : public QWidget +{ + Q_OBJECT + +private: + std::auto_ptr<QImage> image_; + OrthancStone::CairoSurface surface_; + OrthancStone::BasicNativeApplicationContext* context_; + bool isMouseOver_; + int mouseOverX_; + int mouseOverY_; + bool updateNeeded_; + + std::auto_ptr<OrthancStone::IMouseTracker> mouseTracker_; + +// void UpdateMouseCoordinates(int x, +// int y); + +protected: + void paintEvent(QPaintEvent *event); + + void resizeEvent(QResizeEvent *event); + +// void mouseMoveEvent(QMouseEvent *event); + +// void mousePressEvent(QMouseEvent *event); + +// void mouseReleaseEvent(QMouseEvent *event); + +// void wheelEvent(QWheelEvent *event); + +public: + explicit QCairoWidget(QWidget *parent); + + virtual ~QCairoWidget(); + + void SetContext(OrthancStone::BasicNativeApplicationContext& context) + { + context_ = &context; + } + +// void SetCentralWidget(OrthancStone::CairoWidget& widget) +// { +// centralWidget_ = &widget; +// } + +// void SetScene(OrthancStone::ICairoScene& scene); + +// bool HasScene() const +// { +// return scene_ != NULL; +// } + +// OrthancStone::ICairoScene& GetScene() const +// { +// assert(HasScene()); +// return *scene_; +// } + +// virtual void SignalUpdatedScene(OrthancStone::ICairoScene& scene) +// { +// //printf("UPDATE NEEDED\n"); fflush(stdout); +// updateNeeded_ = true; +// } + +signals: +// void SliceChanged(int position); + +// void RangeChanged(unsigned int countSlices); + +// void PositionChanged(const QString& position); + +// void ContentChanged(); + +public slots: +// void SetDefaultView(); + +// void Refresh(); + +// void SetSlice(int index); +};