void WSlider::paintTick(WPainter& painter, int value, int x, int y) { if (!tickPosition_.empty()) { int h = 0; if (orientation_ == Orientation::Horizontal) h = (int)painter.device()->height().toPixels(); else h = (int)painter.device()->width().toPixels(); WPen pen; pen.setColor(WColor(0xd7, 0xd7, 0xd7)); pen.setCapStyle(PenCapStyle::Flat); pen.setWidth(1); painter.setPen(pen); int y1 = h / 4; int y2 = h / 2 - 4; int y3 = h / 2 + 4; int y4 = h - h/4; switch (orientation_) { case Orientation::Horizontal: if (tickPosition_.test(WSlider::TickPosition::TicksAbove)) painter.drawLine(x + 0.5, y1, x + 0.5, y2); if (tickPosition_.test(WSlider::TickPosition::TicksBelow)) painter.drawLine(x + 0.5, y3, x + 0.5, y4); break; case Orientation::Vertical: if (tickPosition_.test(WSlider::TickPosition::TicksAbove)) painter.drawLine(y1, y + 0.5, y2, y + 0.5); if (tickPosition_.test(WSlider::TickPosition::TicksBelow)) painter.drawLine(y3, y + 0.5, y4, y + 0.5); } } }
void WCartesianChart::renderLegendIcon(WPainter& painter, const WPointF& pos, const WDataSeries& series) const { switch (series.type()) { case BarSeries: { WPainterPath path; path.moveTo(-6, 8); path.lineTo(-6, -8); path.lineTo(6, -8); path.lineTo(6, 8); painter.setPen(series.pen()); painter.setBrush(series.brush()); painter.translate(pos.x() + 7.5, pos.y()); painter.drawPath(path); painter.translate(-(pos.x() + 7.5), -pos.y()); break; } case LineSeries: case CurveSeries: { painter.setPen(series.pen()); double offset = (series.pen().width() == 0 ? 0.5 : 0); painter.drawLine(pos.x(), pos.y() + offset, pos.x() + 16, pos.y() + offset); } // no break; case PointSeries: { WPainterPath path; drawMarker(series, path); if (!path.isEmpty()) { painter.translate(pos.x() + 8, pos.y()); painter.setPen(series.markerPen()); painter.setBrush(series.markerBrush()); painter.drawPath(path); painter.translate(- (pos.x() + 8), -pos.y()); } break; } } }