tools/templates/pixlabel.cpp
author orange.hg@gmail.com
Sat, 25 Jun 2011 16:29:05 +0000
changeset 5315 052b6737d2ea
parent 361 c3eebac100c0
child 8442 535a00ca0d35
permissions -rw-r--r--
Changements : -ajout de messages répondant à certaine actions des hedgehogs (passer son tour, toucher un ami, etc.) et à l'arrivée des boites (santé, armes et outils) -reformulation de certaines phrases concernant la description des armes et les modes de jeu (càd : ajout/retrai d'un mot, changement des temps de certains verbes, etc.)

#include <QPainter>
#include <QPen>
#include "pixlabel.h"

PixLabel::PixLabel()
		: QLabel(0)
{

}

void PixLabel::paintEvent(QPaintEvent * event)
{
	QLabel::paintEvent(event);
	QPainter p(this);

	p.fillRect(QRect(0, 0, 1024, 512), QBrush(Qt::black));

	if (rects.size())
	{
		p.setPen(QPen(Qt::lightGray));
		QVector<QPoint> centers;
		for(QList<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it)
			centers.push_back((*it).center());
		p.drawPolyline(QPolygon(centers));

		p.setPen(QPen(Qt::white));
		p.drawRects(rects.toVector());

		p.setPen(QPen(Qt::yellow));
		p.drawRect(rects.last());
	}
}

void PixLabel::mousePressEvent(QMouseEvent * e)
{
	if (!rects.empty())
	{
		if (e->button() == Qt::LeftButton)
			rects[rects.size() - 1].moveTopLeft(QPoint(e->x(), e->y()));
		else
		if (e->button() == Qt::RightButton)
			rects[rects.size() - 1].setBottomRight(QPoint(e->x(), e->y()));
		repaint();
	}
}

void PixLabel::AddRect()
{
	rects.push_back(QRect(0, 0, 1, 1));
	repaint();
}