3 #include <QStylePainter>
7 #define LITTLE_MARK_X2 15
8 #define LITTLE_MARK_X1 13
9 #define MIDDLE_MARK_X1 9
10 #define MIDDLE_MARK_X2 15
14 #include "smallruler.h"
17 SmallRuler::SmallRuler(QWidget *parent)
21 setShowBigMarks(false);
22 setShowTinyMarks(false);
24 setRulerMetricStyle(KRuler::Custom);
28 void SmallRuler::setPixelPerMark ( double rate )
30 kDebug()<<" RULER SET RATE: "<<rate;
32 setLittleMarkDistance(25);
33 setMediumMarkDistance(5 * 25);
35 else if (rate > 0.09) {
36 setLittleMarkDistance(5 * 25);
37 setMediumMarkDistance(30 * 25);
40 setLittleMarkDistance(30 * 25);
41 setMediumMarkDistance(60 * 25);
44 KRuler::setPixelPerMark( rate );
48 void SmallRuler::mousePressEvent ( QMouseEvent * event )
51 //slotNewValue( pos );
52 emit seekRenderer(pos);
57 void SmallRuler::mouseMoveEvent ( QMouseEvent * event )
60 //slotNewValue( pos );
61 emit seekRenderer(pos);
65 void SmallRuler::slotNewValue ( int _value )
67 m_cursorPosition = _value / pixelPerMark();
68 KRuler::slotNewValue(_value);
72 void SmallRuler::paintEvent(QPaintEvent * /*e*/)
74 // debug ("KRuler::drawContents, %s",(horizontal==dir)?"horizontal":"vertical");
76 QStylePainter p(this);
79 int value = this->value(),
83 + offset() - endOffset();
85 //ioffsetval = value-offset;
86 // pixelpm = (int)ppm;
87 // left = clip.left(),
88 // right = clip.right();
90 offsetmin=(double)(minval-offset()),
91 offsetmax=(double)(maxval-offset()),
92 fontOffset = (((double)minval)>offsetmin)?(double)minval:offsetmin;
95 QFont font = p.font();
96 font.setPointSize(LABEL_SIZE);
99 if (showLittleMarks()) {
100 // draw the little marks
101 fend = pixelPerMark()*littleMarkDistance();
102 if (fend > 2) for ( f=offsetmin; f<offsetmax; f+=fend ) {
103 p.drawLine((int)f, LITTLE_MARK_X1, (int)f, LITTLE_MARK_X2);
106 if (showMediumMarks()) {
108 fend = pixelPerMark()*mediumMarkDistance();
109 if (fend > 2) for ( f=offsetmin; f<offsetmax; f+=fend ) {
110 p.drawLine((int)f, MIDDLE_MARK_X1, (int)f, MIDDLE_MARK_X2);
116 if (d->dir == Qt::Horizontal) {
117 p.drawLine(minval-d->offset, END_MARK_X1, minval-d->offset, END_MARK_X2);
118 p.drawLine(maxval-d->offset, END_MARK_X1, maxval-d->offset, END_MARK_X2);
121 p.drawLine(END_MARK_X1, minval-d->offset, END_MARK_X2, minval-d->offset);
122 p.drawLine(END_MARK_X1, maxval-d->offset, END_MARK_X2, maxval-d->offset);
129 pa.setPoints(3, value-6, 9, value+6, 9, value/*+0*/, 16);
130 p.setBrush( QBrush(Qt::yellow) );
136 #include "smallruler.moc"