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++
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 };
|
|
}; |