diff options
Diffstat (limited to 'wx+')
-rw-r--r-- | wx+/graph.cpp | 16 | ||||
-rw-r--r-- | wx+/graph.h | 6 | ||||
-rw-r--r-- | wx+/grid.cpp | 12 |
3 files changed, 15 insertions, 19 deletions
diff --git a/wx+/graph.cpp b/wx+/graph.cpp index bee38e36..bf30843d 100644 --- a/wx+/graph.cpp +++ b/wx+/graph.cpp @@ -247,7 +247,7 @@ void cutPoints(std::vector<CurvePoint>& curvePoints, std::vector<unsigned char>& auto savePoint = [&](const CurvePoint& pt, bool markedOob) { curvePointsTmp.push_back(pt); oobMarkerTmp.push_back(markedOob); }; - bool pointInside = isInside(curvePoints[0]); + bool pointInside = isInside(curvePoints[0]); if (pointInside) savePoint(curvePoints[0], isMarkedOob(0)); @@ -282,7 +282,8 @@ void cutPoints(std::vector<CurvePoint>& curvePoints, std::vector<unsigned char>& struct GetIntersectionX { - GetIntersectionX(double x) : x_(x) {} + explicit GetIntersectionX(double x) : x_(x) {} + CurvePoint operator()(const CurvePoint& from, const CurvePoint& to) const { const double deltaX = to.x - from.x; @@ -296,7 +297,8 @@ private: struct GetIntersectionY { - GetIntersectionY(double y) : y_(y) {} + explicit GetIntersectionY(double y) : y_(y) {} + CurvePoint operator()(const CurvePoint& from, const CurvePoint& to) const { const double deltaX = to.x - from.x; @@ -524,7 +526,7 @@ void Graph2D::addCurve(const SharedRef<CurveData>& data, const CurveAttributes& void Graph2D::render(wxDC& dc) const { //set label font right at the start so that it is considered by wxDC::GetTextExtent() below! - dc.SetFont(labelFont_); + dc.SetFont(GetFont()); const wxRect clientRect = GetClientRect(); //DON'T use wxDC::GetSize()! DC may be larger than visible area! @@ -634,11 +636,11 @@ void Graph2D::render(wxDC& dc) const if (!attr_.minY || !attr_.maxY) { - auto itPair = std::minmax_element(points.begin(), points.end(), [](const CurvePoint& lhs, const CurvePoint& rhs) { return lhs.y < rhs.y; }); + const auto& [itMin, itMax] = std::minmax_element(points.begin(), points.end(), [](const CurvePoint& lhs, const CurvePoint& rhs) { return lhs.y < rhs.y; }); if (!attr_.minY) - minY = std::min(minY, itPair.first->y); + minY = std::min(minY, itMin->y); if (!attr_.maxY) - maxY = std::max(maxY, itPair.second->y); + maxY = std::max(maxY, itMax->y); } } } diff --git a/wx+/graph.h b/wx+/graph.h index e9f6af32..2f73a643 100644 --- a/wx+/graph.h +++ b/wx+/graph.h @@ -326,11 +326,7 @@ private: std::optional<wxBitmap> doubleBuffer_; - using CurveList = std::vector<std::pair<SharedRef<CurveData>, CurveAttributes>>; - CurveList curves_; - - //perf!!! generating the font is *very* expensive! => buffer for Graph2D::render()! - const wxFont labelFont_{wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, L"Arial"}; + std::vector<std::pair<SharedRef<CurveData>, CurveAttributes>> curves_; }; } diff --git a/wx+/grid.cpp b/wx+/grid.cpp index 5d2adc1a..0ffee3a7 100644 --- a/wx+/grid.cpp +++ b/wx+/grid.cpp @@ -615,12 +615,11 @@ private: class Grid::ColLabelWin : public SubWindow { public: - explicit ColLabelWin(Grid& parent) : SubWindow(parent) + explicit ColLabelWin(Grid& parent) : SubWindow(parent), + labelFont_(GetFont().Bold()) { //coordinate with ColLabelWin::render(): - wxFont labelFont = GetFont(); - labelFont.MakeBold(); - colLabelHeight_ = fastFromDIP(2 * DEFAULT_COL_LABEL_BORDER_DIP) + labelFont.GetPixelSize().GetHeight(); + colLabelHeight_ = fastFromDIP(2 * DEFAULT_COL_LABEL_BORDER_DIP) + labelFont_.GetPixelSize().GetHeight(); } int getColumnLabelHeight() const { return colLabelHeight_; } @@ -637,9 +636,7 @@ private: const bool enabled = renderAsEnabled(*this); //coordinate with "colLabelHeight" in Grid constructor: - wxFont labelFont = GetFont(); - labelFont.MakeBold(); - dc.SetFont(labelFont); + dc.SetFont(labelFont_); wxDCTextColourChanger textColor(dc, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); //use user setting for labels @@ -944,6 +941,7 @@ private: bool freezeMouseHighlight_ = false; int colLabelHeight_ = 0; + const wxFont labelFont_; }; //---------------------------------------------------------------------------------------------------------------- |