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);
56 void SmallRuler::slotNewValue ( int _value )
58 m_cursorPosition = _value / pixelPerMark();
59 KRuler::slotNewValue(_value);
63 void SmallRuler::paintEvent(QPaintEvent * /*e*/)
65 // debug ("KRuler::drawContents, %s",(horizontal==dir)?"horizontal":"vertical");
67 QStylePainter p(this);
70 int value = this->value(),
74 + offset() - endOffset();
76 //ioffsetval = value-offset;
77 // pixelpm = (int)ppm;
78 // left = clip.left(),
79 // right = clip.right();
81 offsetmin=(double)(minval-offset()),
82 offsetmax=(double)(maxval-offset()),
83 fontOffset = (((double)minval)>offsetmin)?(double)minval:offsetmin;
86 QFont font = p.font();
87 font.setPointSize(LABEL_SIZE);
90 if (showLittleMarks()) {
91 // draw the little marks
92 fend = pixelPerMark()*littleMarkDistance();
93 if (fend > 2) for ( f=offsetmin; f<offsetmax; f+=fend ) {
94 p.drawLine((int)f, LITTLE_MARK_X1, (int)f, LITTLE_MARK_X2);
97 if (showMediumMarks()) {
99 fend = pixelPerMark()*mediumMarkDistance();
100 if (fend > 2) for ( f=offsetmin; f<offsetmax; f+=fend ) {
101 p.drawLine((int)f, MIDDLE_MARK_X1, (int)f, MIDDLE_MARK_X2);
107 if (d->dir == Qt::Horizontal) {
108 p.drawLine(minval-d->offset, END_MARK_X1, minval-d->offset, END_MARK_X2);
109 p.drawLine(maxval-d->offset, END_MARK_X1, maxval-d->offset, END_MARK_X2);
112 p.drawLine(END_MARK_X1, minval-d->offset, END_MARK_X2, minval-d->offset);
113 p.drawLine(END_MARK_X1, maxval-d->offset, END_MARK_X2, maxval-d->offset);
120 pa.setPoints(3, value-6, 9, value+6, 9, value/*+0*/, 16);
121 p.setBrush( QBrush(Qt::yellow) );
127 #include "smallruler.moc"