/*
- * This file is part of the sigrok project.
+ * This file is part of the PulseView project.
*
* Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
*
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PV_VIEW_VIEW_H
-#define PV_VIEW_VIEW_H
+#ifndef PULSEVIEW_PV_VIEW_VIEW_H
+#define PULSEVIEW_PV_VIEW_VIEW_H
#include <stdint.h>
#include <QAbstractScrollArea>
+namespace pv {
+
class SigSession;
-namespace pv {
namespace view {
class Header;
static const int LabelMarginWidth;
static const int RulerHeight;
+ static const int MaxScrollValue;
+
public:
static const int SignalHeight;
SigSession& session();
+ /**
+ * Returns the view time scale in seconds per pixel.
+ */
double scale() const;
+
+ /**
+ * Returns the time offset of the left edge of the view in
+ * seconds.
+ */
double offset() const;
int v_offset() const;
void zoom(double steps);
+ void zoom(double steps, int offset);
+ /**
+ * Sets the scale and offset.
+ * @param scale The new view scale in seconds per pixel.
+ * @param offset The view time offset in seconds.
+ */
void set_scale_offset(double scale, double offset);
+ const QPoint& hover_point() const;
+
+signals:
+ void hover_point_changed();
+
private:
+ void get_scroll_layout(double &length, double &offset) const;
+
void update_scroll();
- void zoom(double steps, int offset);
-
private:
+ bool eventFilter(QObject *object, QEvent *event);
+
bool viewportEvent(QEvent *e);
void resizeEvent(QResizeEvent *e);
private slots:
+
void h_scroll_value_changed(int value);
void v_scroll_value_changed(int value);
uint64_t _data_length;
+ /// The view time scale in seconds per pixel.
double _scale;
+
+ /// The view time offset in seconds.
double _offset;
int _v_offset;
- friend class Viewport;
+ QPoint _hover_point;
};
} // namespace view
} // namespace pv
-#endif // PV_VIEW_VIEW_H
+#endif // PULSEVIEW_PV_VIEW_VIEW_H