-// virtual
-void SmallRuler::paintEvent(QPaintEvent *e) {
- // debug ("KRuler::drawContents, %s",(horizontal==dir)?"horizontal":"vertical");
-
- QStylePainter p(this);
- p.fillRect(e->rect(), QBrush(QColor(Qt::white)));
-
-
- int value = this->value(),
- minval = minimum(),
- maxval;
- maxval = maximum()
- + offset() - endOffset();
-
- //ioffsetval = value-offset;
- // pixelpm = (int)ppm;
- // left = clip.left(),
- // right = clip.right();
- double f, fend,
- offsetmin = (double)(minval - offset()),
- offsetmax = (double)(maxval - offset()),
- fontOffset = (((double)minval) > offsetmin) ? (double)minval : offsetmin;
-
- // draw labels
- QFont font = p.font();
- font.setPointSize(LABEL_SIZE);
- p.setFont(font);
-
- if (showLittleMarks()) {
- // draw the little marks
- fend = pixelPerMark() * littleMarkDistance();
- if (fend > 2) for (f = offsetmin; f < offsetmax; f += fend) {
- p.drawLine((int)f, LITTLE_MARK_X1, (int)f, LITTLE_MARK_X2);
- }
+//virtual
+void SmallRuler::resizeEvent(QResizeEvent *)
+{
+ adjustScale(m_maxval);
+}
+
+void SmallRuler::updatePixmap()
+{
+ m_pixmap = QPixmap(width(), height());
+ m_pixmap.fill(palette().window().color());
+ QPainter p(&m_pixmap);
+ double f, fend;
+
+ const int zoneStart = (int)(m_zoneStart * m_scale);
+ const int zoneEnd = (int)(m_zoneEnd * m_scale);
+ p.fillRect(zoneStart, height() / 2 - 1, zoneEnd - zoneStart, height() / 2, m_zoneColor);
+
+ // draw ruler
+ p.setPen(palette().text().color());
+ // draw the little marks
+ fend = m_scale * m_small;
+ if (fend > 2) for (f = 0; f < width(); f += fend) {
+ p.drawLine((int)f, 0, (int)f, 3);