From bfeb067c8acfb5f1797fdc886ac71ca1b10ccf57 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 14 Apr 2002 17:08:03 +0000 Subject: Import of kbill --- (limited to 'noncore/games/kbill/field.cpp') diff --git a/noncore/games/kbill/field.cpp b/noncore/games/kbill/field.cpp new file mode 100644 index 0000000..a1b3560 --- a/dev/null +++ b/noncore/games/kbill/field.cpp @@ -0,0 +1,84 @@ +/*************************************************************************** + field.cpp - description + ------------------- + begin : Thu Dec 30 1999 + copyright : (C) 1999 by Jurrien Loonstra + email : j.h.loonstra@st.hanze.nl + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include + +#include "objects.h" + +#include "field.h" + +Field::Field(QWidget *parent, const char *name ) : QWidget(parent,name) { + setFixedSize(game.scrwidth, game.scrheight); + setBackgroundColor(white); + timer = new QTimer(this); + + playing = false; + + connect(timer, SIGNAL(timeout()), SLOT(Timer())); +} + +Field::~Field(){ + delete timer; +} + +void Field::setPixmap(QPixmap *pix) { + this->pix = pix; +} + +// -------------------------------------------------------- + +void Field::mousePressEvent(QMouseEvent *e){ + game.button_press(e->x(), e->y()); +} + +void Field::mouseReleaseEvent(QMouseEvent *e){ + game.button_release(e->x(), e->y()); +} + +void Field::enterEvent(QEvent *) { + if (playing && !timer->isActive()) { + playing = true; + timer->start(250, FALSE); + } +} + +void Field::leaveEvent(QEvent *) { + if (timer->isActive() && playing) { + playing = true; + timer->stop(); + } +} + +void Field::stopTimer() { + playing = false; + if (timer->isActive()) + timer->stop(); +} + +void Field::startTimer() { + playing = true; + if (!timer->isActive()) + timer->start(250, FALSE); +} + +void Field::Timer(){ + game.update(); +} + +void Field::paintEvent(QPaintEvent *) { + bitBlt(this, 0, 0, pix); +} \ No newline at end of file -- cgit v0.9.0.2