summaryrefslogtreecommitdiffstats
path: root/kanagram/src/leitnersystemview.h
diff options
context:
space:
mode:
Diffstat (limited to 'kanagram/src/leitnersystemview.h')
-rw-r--r--kanagram/src/leitnersystemview.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/kanagram/src/leitnersystemview.h b/kanagram/src/leitnersystemview.h
new file mode 100644
index 00000000..be52bc0b
--- /dev/null
+++ b/kanagram/src/leitnersystemview.h
@@ -0,0 +1,57 @@
+//
+// C++ Interface: leitnersystemview
+//
+// Description:
+//
+//
+// Author: Martin Pfeiffer <martin-pfeiffer-bensheim@web.de>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef LEITNERSYSTEMVIEW_H
+#define LEITNERSYSTEMVIEW_H
+
+#include <qscrollview.h>
+#include <qpixmap.h>
+
+class LeitnerSystem;
+
+
+/**
+@author Martin Pfeiffer
+*/
+
+class LeitnerSystemView : public QScrollView
+{
+ Q_OBJECT
+
+public:
+ LeitnerSystemView(QWidget* parent = 0, const char* name = 0, WFlags f = 0);
+
+ ~LeitnerSystemView();
+
+ void setSystem(LeitnerSystem* system); //set a new system to view on
+ void highlightBox(int box); //highlight a box
+
+signals:
+ void boxClicked(int box); //is emited if the user clicks on a box
+
+protected:
+ virtual void drawContents(QPainter* p, int clipx, int clipy, int clipw, int cliph);
+ virtual void mousePressEvent(QMouseEvent* e);
+
+private:
+ LeitnerSystem* m_leitnerSystem; //the system which is shown
+
+ void drawSystem(QPainter*); //paints the boxes
+ void drawConnections(QPainter*); //paints the arrows between the boxes
+ void calculateSize();
+
+ //QRect m_viewArea;
+ int m_imageY; //high border of the images
+ int m_distPixmap;
+ int m_highlightedBox; //the box which is currently highlighted
+};
+
+#endif