36 void ViewPainter::init(QPainter *p,
float Scale_,
int DX_,
int DY_,
int dx_,
int dy_,
float FontScale_,
float PrintScale_)
43 DY =
floor(
float(DY_) * Scale) - float(dy_);
51 f.setPointSizeFloat(
FontScale *
float(f.pointSize()) );
54 p->setWorldXForm(
false);
92 Painter->drawLine(x1, y1, x2, y2);
108 z = DX_ + (*pp)*
Scale;
110 z = DY_ - (*(pp+1))*
Scale;
115 z = DX_ + (*pp)*
Scale;
117 z = DY_ - (*(pp+1))*
Scale;
121 z = DX_ + (*pp)*
Scale;
123 z = DY_ - (*(pp+1))*
Scale;
125 Painter->drawLine(x1, y1, x2, y2);
129 z = DX_ + (*pp)*
Scale;
131 z = DY_ - (*(pp+1))*
Scale;
133 Painter->drawLine(x2, y2, x1, y1);
146 int x3, x1, x2, y1, y2;
156 z = DX_ + (*(pp++))*
Scale;
161 z = DY_ - (*(pp++))*
Scale;
165 Painter->drawLine(x0, y0, x3, y0);
166 Painter->drawLine(x1, y2, x2, y1);
167 Painter->drawLine(x2, y2, x1, y1);
188 z = DX_ + (*(pp++)-4.0)*
Scale;
190 z = DY_ - (*(pp++)+4.0)*
Scale;
192 Painter->drawEllipse(x0, y0, d, d);
212 z = DX_ + (*(pp++))*
Scale;
216 z = DY_ - (*(pp++))*
Scale;
219 Painter->drawLine(x0, y0, x0, y2);
220 Painter->drawLine(x1, y1, x0, y0);
221 Painter->drawLine(x2, y1, x0, y0);
240 Painter->drawRect(x1, y1, dx, dy);
252 Painter->drawRect(x1, y1, dx, dy);
268 Painter->drawRoundRect(x1, y1, dx, dy);
284 Painter->drawEllipse(x1, y1, dx, dy);
298 Painter->drawText(x1, y1, 0, 0, Qt::DontClip, Text, -1, &r);
300 if(Height) *Height = r.height();
316 while (!Text[i].isNull()) {
317 if ((Text[i].latin1() ==
'_' || Text[i].latin1() ==
'^') &&
318 !Text[i+1].isNull()) {
319 bool is_sub = Text[i++].latin1() ==
'_';
322 if (Text[i] ==
'{') {
324 while (!Text[i+len].isNull() && Text[i+len].latin1() !=
'}') len++;
334 f.setPointSizeFloat(f.pointSizeFloat()*0.8);
337 y1+y + (is_sub ? +0.6 : -0.3) *
338 fbak.pointSizeFloat() * scale,
340 Text.mid(i, len ? len : 1), -1, &r);
344 i += len ? len + 1 : 1;
349 while (!Text[i+len].isNull() && Text[i+len].latin1() !=
'_' &&
350 Text[i+len].latin1() !=
'^' && Text[i+len].latin1() !=
'\n')
353 0, 0, Qt::DontClip, Text.mid(i, len), -1, &r);
354 if (h < r.height()) {
359 if (Text[i+len].latin1() ==
'\n') {
368 if(Height) *Height = y+h;
384 w = int(
float(w)*
Scale);
385 h = int(
float(h)*Scale);
386 Painter->drawArc(x1, y1, w+1, h+1, Angle, ArcLen);
403 Painter->fillRect(x1, y1, dx, dy, QBrush(Color));
415 Painter->eraseRect(x1, y1, dx, dy);
429 Painter->drawRect(x1-5, y1-5, 10, 10);