* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEWPORT_HPP
-#define PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEWPORT_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACE_VIEWPORT_HPP
+#define PULSEVIEW_PV_VIEWS_TRACE_VIEWPORT_HPP
#include <boost/optional.hpp>
+#include <QPoint>
#include <QTimer>
#include <QTouchEvent>
+#include <pv/globalsettings.hpp>
+
#include "pv/util.hpp"
#include "viewwidget.hpp"
class View;
-class Viewport : public ViewWidget
+class Viewport : public ViewWidget, public GlobalSettingsInterface
{
Q_OBJECT
public:
explicit Viewport(View &parent);
+ ~Viewport();
/**
* Gets the first view item which has a hit-box that contains @c pt .
* @param item The item that is being hovered over, or @c nullptr
* if no view item is being hovered over.
*/
- void item_hover(const shared_ptr<ViewItem> &item);
+ void item_hover(const shared_ptr<ViewItem> &item, QPoint pos);
/**
* Sets this item into the dragged state.
*/
bool touch_event(QTouchEvent *event);
-private:
void paintEvent(QPaintEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
+
void wheelEvent(QWheelEvent *event);
+ void on_setting_changed(const QString &key, const QVariant &value);
+
private:
boost::optional<pv::util::Timestamp> drag_offset_;
int drag_v_offset_;
+ bool allow_vertical_dragging_;
double pinch_offset0_;
double pinch_offset1_;
} // namespace views
} // namespace pv
-#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEWPORT_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACE_VIEWPORT_HPP