Files
Renderive/YSGraphic_Core/base/Muti_Select_Rect.cpp
T
2026-07-23 18:11:07 +08:00

76 lines
3.0 KiB
C++

#include "Muti_Select_Rect_p.h"
namespace YSG {
using MutiSelectRect_Binding = Renderable_Binding<Muti_Select_Rect, Muti_Select_Rect_Private, MutiSelectRectRenderState, MutiSelectRectInputData>;
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<MutiSelectRectRenderState*>(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<Muti_Select_Rect_Private, MutiSelectRectRenderState> edit(d());
edit->mHorizontalAxis = axis;
}
void Muti_Select_Rect::set_vertical_axis(Abs_Axis* axis) {
Render_Edit_Lease<Muti_Select_Rect_Private, MutiSelectRectRenderState> 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<Muti_Select_Rect_Private, MutiSelectRectRenderState> edit(d());
edit->mFont = font;
}
void Muti_Select_Rect::set_font_pen(const QPen& pen) {
Render_Edit_Lease<Muti_Select_Rect_Private, MutiSelectRectRenderState> edit(d());
edit->mFontPen = pen.color().isValid() ? pen : Qt::NoPen;
}
void Muti_Select_Rect::set_rect_brush(const QBrush& brush) {
Render_Edit_Lease<Muti_Select_Rect_Private, MutiSelectRectRenderState> edit(d());
edit->mRectBrush = brush.color().isValid() ? brush : Qt::NoBrush;
}
void Muti_Select_Rect::set_border_pen(const QPen& pen) {
Render_Edit_Lease<Muti_Select_Rect_Private, MutiSelectRectRenderState> edit(d());
edit->mBorderPen = pen.color().isValid() ? pen : Qt::NoPen;
}
}