#include <memory>
#include <QPoint>
-#include <QWidget>
+
+#include "viewwidget.hpp"
namespace pv {
namespace view {
-class View;
class ViewItem;
-class MarginWidget : public QWidget
+class MarginWidget : public ViewWidget
{
Q_OBJECT
*/
void show_popup(const std::shared_ptr<ViewItem> &item);
+ /**
+ * Drag the dragging items by the delta offset.
+ * @param delta the drag offset in pixels.
+ */
+ virtual void drag_items(const QPoint &delta) = 0;
+
/**
* Handles left mouse button press events.
* @param event the mouse event that triggered this handler.
*/
void mouse_left_press_event(QMouseEvent *event);
+ /**
+ * Handles left mouse button release events.
+ * @param event the mouse event that triggered this handler.
+ */
+ void mouse_left_release_event(QMouseEvent *event);
+
protected:
void mousePressEvent(QMouseEvent * event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
void leaveEvent(QEvent *event);
void selection_changed();
protected:
- pv::view::View &view_;
QPoint mouse_point_;
QPoint mouse_down_point_;
std::shared_ptr<ViewItem> mouse_down_item_;