#include "Muti_Select_Rect_p.h" namespace YSG { using MutiSelectRect_Binding = Renderable_Binding; Muti_Select_Rect::Muti_Select_Rect() { MutiSelectRect_Binding::init(this, "MutiSelectRect"); } Muti_Select_Rect_Private* Muti_Select_Rect::d() { return MutiSelectRect_Binding::d(this); } Render_Data* Muti_Select_Rect::create_render_data() { return MutiSelectRect_Binding::create_render_data(); } Render_State* Muti_Select_Rect::create_render_state() { return MutiSelectRect_Binding::create_render_state(); } Input_Data* Muti_Select_Rect::create_input_data() { return MutiSelectRect_Binding::create_input_data(); } Muti_Select_Rect::Builder::Builder(Abs_Axis* keyAxis, Abs_Axis* value_axis) { ASSERT(keyAxis->mPlot != nullptr, "Afterglow build error! keyAxis->mPlot == nullptr"); ASSERT(keyAxis->mPlot == value_axis->mPlot, "Afterglow build error! keyAxis->mPlot != value_axis->mPlot"); plot = keyAxis->mPlot; this->keyAxis = keyAxis; this->value_axis = value_axis; } Muti_Select_Rect* Muti_Select_Rect::Builder::build() { auto ret = new Muti_Select_Rect(); ret->init(plot, layerName); Muti_Select_Rect_Private* pd = ret->d(); MutiSelectRectRenderState* sc = reinterpret_cast(pd->state(State_Edit)); sc->mHorizontalAxis = keyAxis; sc->mVerticalAxis = value_axis; sc->mFont = font; sc->mFontPen = font_pen; sc->mRectBrush = rect_brush; sc->mBorderPen = border_pen; return ret; } void Muti_Select_Rect::set_horizontal_axis(Abs_Axis* axis) { Render_Edit_Lease edit(d()); edit->mHorizontalAxis = axis; } void Muti_Select_Rect::set_vertical_axis(Abs_Axis* axis) { Render_Edit_Lease edit(d()); edit->mVerticalAxis = axis; } QFont Muti_Select_Rect::font(SRC src) { return d()->state_data(src)->mFont; } QPen Muti_Select_Rect::font_pen(SRC src) { return d()->state_data(src)->mFontPen; } QBrush Muti_Select_Rect::rect_brush(SRC src) { return d()->state_data(src)->mRectBrush; } QPen Muti_Select_Rect::border_pen(SRC src) { return d()->state_data(src)->mBorderPen; } void Muti_Select_Rect::set_font(const QFont& font) { Render_Edit_Lease edit(d()); edit->mFont = font; } void Muti_Select_Rect::set_font_pen(const QPen& pen) { Render_Edit_Lease edit(d()); edit->mFontPen = pen.color().isValid() ? pen : Qt::NoPen; } void Muti_Select_Rect::set_rect_brush(const QBrush& brush) { Render_Edit_Lease edit(d()); edit->mRectBrush = brush.color().isValid() ? brush : Qt::NoBrush; } void Muti_Select_Rect::set_border_pen(const QPen& pen) { Render_Edit_Lease edit(d()); edit->mBorderPen = pen.color().isValid() ? pen : Qt::NoPen; } }