summaryrefslogtreecommitdiffstats
path: root/kjumpingcube/kcubewidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'kjumpingcube/kcubewidget.h')
-rw-r--r--kjumpingcube/kcubewidget.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/kjumpingcube/kcubewidget.h b/kjumpingcube/kcubewidget.h
new file mode 100644
index 00000000..f0d8d8cd
--- /dev/null
+++ b/kjumpingcube/kcubewidget.h
@@ -0,0 +1,119 @@
+/* ****************************************************************************
+ This file is part of the game 'KJumpingCube'
+
+ Copyright (C) 1998-2000 by Matthias Kiefer
+ <matthias.kiefer@gmx.de>
+
+ 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.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+**************************************************************************** */
+#ifndef KCUBEWIDGET_H
+#define KCUBEWIDGET_H
+
+#include <qframe.h>
+#include "cube.h"
+
+class QPalette;
+class QTimer;
+
+
+/**
+*
+*/
+class KCubeWidget : public QFrame , public Cube
+{
+ Q_OBJECT
+
+public:
+ /** constructs a new KCubeWidget*/
+ KCubeWidget(QWidget* parent=0,const char* name=0
+ ,Owner owner=Cube::Nobody,int value=1,int max=0);
+ virtual ~KCubeWidget();
+
+ virtual Owner setOwner(Owner newOwner);
+ virtual void setValue(int newValue);
+
+
+ /** takes the information from a Cube */
+ KCubeWidget& operator=(const Cube&);
+ KCubeWidget& operator=(const KCubeWidget&);
+
+ /** shows a tip e.g. blinks with the interval 500 and number times */
+ void showHint(int interval=500,int number=5);
+ /** stops showing a hint */
+ void stopHint();
+
+ /**
+ * animates the cube if possible (if feature is enabled)
+ * In KCubeWidget this function does nothing, it's just for having
+ * a public interface for all classes that inherits KCubeWidget
+ */
+ virtual void animate(bool flag);
+
+ /**
+ * sets the coordinates of the Cube in a Cubebox;
+ * needed for identification when clicked.
+ */
+ void setCoordinates(int row,int column);
+ /** returns the row */
+ int row() const;
+ /** returns the column */
+ int column() const;
+
+ /** enables or disables possibility to click a cube*/
+ static void enableClicks(bool flag);
+ static void setColor(Owner forWhom, QPalette newPalette);
+ static QPalette color(Owner forWhom);
+
+public slots:
+ /** resets the Cube to default values */
+ virtual void reset();
+ /** shows changed colors*/
+ virtual void updateColors();
+
+signals:
+ void clicked(int row,int column,bool isClick);
+
+protected:
+ /** checks, if mouseclick was inside this cube*/
+ virtual void mouseReleaseEvent(QMouseEvent*);
+
+ /** refreshs the contents of the Cube */
+ virtual void drawContents(QPainter*);
+
+
+
+ int hintCounter;
+
+protected slots:
+ /**
+ * To this function the hintTimer is connected.
+ * It manage a periodical way of showing a hint.
+ */
+ virtual void hint();
+
+private:
+ int _row;
+ int _column;
+
+ QTimer *hintTimer;
+
+ static bool _clicksAllowed;
+ static QPalette color1;
+ static QPalette color2;
+};
+
+
+#endif // KCUBEWIDGET_H