void iupPlotDataSet::DrawData(const iupPlotTrafoBase *inTrafoX, const iupPlotTrafoBase *inTrafoY, cdCanvas* canvas, const iupPlotSampleNotify* inNotify) const { int theXCount = mDataX->GetCount(); int theYCount = mDataY->GetCount(); if ((theXCount == 0) || (theYCount == 0)) return; if (theXCount != theYCount) return; cdCanvasSetForeground(canvas, mColor); iPlotSetLine(canvas, mLineStyle, mLineWidth); iPlotSetMark(canvas, mMarkStyle, mMarkSize); switch (mMode) { case IUP_PLOT_LINE: DrawDataLine(inTrafoX, inTrafoY, canvas, inNotify, false, false); break; case IUP_PLOT_MARK: DrawDataMark(inTrafoX, inTrafoY, canvas, inNotify); break; case IUP_PLOT_STEM: DrawDataStem(inTrafoX, inTrafoY, canvas, inNotify, false); break; case IUP_PLOT_MARKSTEM: DrawDataStem(inTrafoX, inTrafoY, canvas, inNotify, true); break; case IUP_PLOT_MARKLINE: DrawDataLine(inTrafoX, inTrafoY, canvas, inNotify, true, false); break; case IUP_PLOT_AREA: DrawDataArea(inTrafoX, inTrafoY, canvas, inNotify); break; case IUP_PLOT_BAR: DrawDataBar(inTrafoX, inTrafoY, canvas, inNotify); break; case IUP_PLOT_PIE: /* handled outside DrawData */ break; case IUP_PLOT_HORIZONTALBAR: DrawDataHorizontalBar(inTrafoX, inTrafoY, canvas, inNotify); break; case IUP_PLOT_MULTIBAR: DrawDataMultiBar(inTrafoX, inTrafoY, canvas, inNotify); break; case IUP_PLOT_ERRORBAR: DrawDataLine(inTrafoX, inTrafoY, canvas, inNotify, true, true); break; case IUP_PLOT_STEP: DrawDataStep(inTrafoX, inTrafoY, canvas, inNotify); break; } if (mHasSelected) DrawSelection(inTrafoX, inTrafoY, canvas, inNotify); }
void AxisPlot::DrawData(wxDC &dc, wxRect rc) { wxRect rcData; wxRect rcLegend; CalcDataArea(dc, rc, rcData, rcLegend); m_dataBackground->Draw(dc, rcData); DrawAxes(dc, rc, rcData); DrawDataArea(dc, rcData); DrawLegend(dc, rcLegend); }