#pragma once #include "../RenderAble.h" namespace YSG { struct MutiSelectRectPrivate; class LIB_DECL MutiSelectRect : public RenderAble { public: Q_Ptr2(MutiSelectRect) void setHorizontalAxis(AbsAxis* axis); void setVerticalAxis(AbsAxis* axis); QFont font(SRC=SRC::Auto); QPen fontPen(SRC=SRC::Auto); QBrush rectBrush(SRC=SRC::Auto); QPen borderPen(SRC=SRC::Auto); void setFont(const QFont& font); void setFontPen(const QPen& pen); void setRectBrush(const QBrush& brush); void setBorderPen(const QPen& pen); struct Builder; }; struct LIB_DECL MutiSelectRect::Builder { SETTER(QFont, font, QFont()) SETTER(QPen, fontPen, QPen(Qt::white)) SETTER(QBrush, rectBrush, QColor(0, 0, 255, 50)) SETTER(QPen, borderPen, []() { QPen pen(Qt::white); pen.setStyle(Qt::DashLine); return pen; }()) SETTER(QString, layerName, "legend") Builder(AbsAxis* keyAxis, AbsAxis* valueAxis); MutiSelectRect* build(); protected: AbsAxis* keyAxis; AbsAxis* valueAxis{}; Plot *plot{}; }; }