You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.2 KiB
C++

#pragma once
#include <QFrame>
#include <QMouseEvent>
#include <QMenu>
#include "lp_qt_utils.h"
class LP_QT_UTILS_EXPORT lpRefLine : public QFrame
{
Q_OBJECT
public:
enum LP_REF_LINE_TYPE {
LINE_VERT,
LINE_HORI
};
lpRefLine(LP_REF_LINE_TYPE line_type, const QString& uuid,
QWidget *parent = nullptr);
void setMoveable(bool moveable) { is_moveable_ = moveable; }
void enableContextMenu(bool enable_menu);
void setBoundingRect(QRect &rect) { bounding_rect_ = rect; }
void setMargin(int margin) { margin_ = margin; }
signals:
void sgPosChanged(const QString& uuid, int pos);
void sgClose(const QString& uuid);
protected:
virtual void enterEvent(QEvent *e) override;
virtual void leaveEvent(QEvent *e) override;
virtual void mouseMoveEvent(QMouseEvent* e) override;
private:
Q_SLOT void onCustomContextMenuRequested(const QPoint& pos);
Q_SLOT void onClose();
private:
LP_REF_LINE_TYPE line_type_{ LINE_VERT };
QString uuid_;
int margin_{ 0 };
QRect bounding_rect_;
bool is_moveable_{ true };
bool enable_menu_{ false };
QAction *action_delete_{ nullptr };
QMenu *context_menu_{ nullptr };
};