Ejemplo n.º 1
0
static void drawRulerOnPixmap(Ruler * rPtr)
{
	int i, j, w, m;
	char c[3];
	int marks[9] = { 11, 3, 5, 3, 7, 3, 5, 3 };

	if (!rPtr->drawBuffer || !rPtr->view->flags.realized)
		return;

	XFillRectangle(rPtr->view->screen->display, rPtr->drawBuffer,
		       rPtr->bgGC, 0, 0, rPtr->view->size.width, 40);

	WMDrawString(rPtr->view->screen, rPtr->drawBuffer, rPtr->fg,
		     rPtr->font, rPtr->margins.left + 2, 26, _("0   inches"), 10);

	/* marker ticks */
	i = j = m = 0;
	w = rPtr->view->size.width - rPtr->margins.left;
	while (m < w) {
		XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer,
			  rPtr->fgGC, rPtr->margins.left + m, 23, rPtr->margins.left + m, marks[i % 8] + 23);
		if (i != 0 && i % 8 == 0) {
			if (j < 10)
				snprintf(c, 3, "%d", ++j);
			else
				snprintf(c, 3, "%2d", ++j);
			WMDrawString(rPtr->view->screen, rPtr->drawBuffer, rPtr->fg,
				     rPtr->font, rPtr->margins.left + 2 + m, 26, c, 2);
		}
		m = (++i) * 10;
	}

	rPtr->end = rPtr->margins.left + m - 10;
	if (rPtr->margins.right > rPtr->end)
		rPtr->margins.right = rPtr->end;
	/* base line */
	XDrawLine(rPtr->view->screen->display, rPtr->drawBuffer, rPtr->fgGC,
		  rPtr->margins.left, 22, rPtr->margins.left + m - 10, 22);

	drawLeftMarker(rPtr);
	drawRightMarker(rPtr);
	drawFirstMarker(rPtr);
	drawBodyMarker(rPtr);

	rPtr->flags.redraw = False;
}
Ejemplo n.º 2
0
void dialogAnalog::drawMarkers(QPainter* painter)
{
	drawLeftMarker(painter);
	drawRightMarker(painter);
}