summaryrefslogtreecommitdiffstats
path: root/kturtle/src/canvas.h
diff options
context:
space:
mode:
Diffstat (limited to 'kturtle/src/canvas.h')
-rw-r--r--kturtle/src/canvas.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/kturtle/src/canvas.h b/kturtle/src/canvas.h
new file mode 100644
index 00000000..349e610d
--- /dev/null
+++ b/kturtle/src/canvas.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2003 Cies Breijs <cies # kde ! nl>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of version 2 of the GNU General Public
+ License as published by the Free Software Foundation.
+
+ 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 _CANVAS_H_
+#define _CANVAS_H_
+
+#include <qcanvas.h>
+
+
+class Canvas : public QCanvasView
+{
+ Q_OBJECT
+
+ public:
+ Canvas(QWidget *parent = 0, const char *name = 0);
+ ~Canvas();
+
+ QPixmap* canvas2Pixmap();
+
+
+ public slots:
+ void slotClear();
+ void slotClearSpriteToo();
+ void slotGo(double x, double y);
+ void slotGoX(double x);
+ void slotGoY(double y);
+ void slotForward(double x);
+ void slotBackward(double x);
+ void slotDirection(double deg);
+ void slotTurnLeft(double deg);
+ void slotTurnRight(double deg);
+ void slotCenter();
+ void slotSetPenWidth(int w);
+ void slotPenUp();
+ void slotPenDown();
+ void slotSetFgColor(int r, int g, int b);
+ void slotSetBgColor(int r, int g, int b);
+ void slotResizeCanvas(int x, int y);
+ void slotSpriteShow();
+ void slotSpriteHide();
+ void slotSpritePress();
+ void slotSpriteChange(int x);
+
+ void slotPrint(QString text);
+ void slotFontType(QString family, QString extra);
+ void slotFontSize(int px);
+ void slotWrapOn();
+ void slotWrapOff();
+ void slotReset();
+
+
+ signals:
+ void CanvasResized();
+
+
+ private:
+ void initValues();
+
+ void line(double xa, double ya, double xb, double yb);
+ void lineShell(double xa, double ya, double xb, double yb);
+ bool endlessLoop(QPoint begin, QPoint end);
+ bool pointInRange(double px, double py, double xa, double ya, double xb, double yb);
+ QPoint offset(int x, int y);
+ QPoint translationFactor(double xa, double ya, double xb, double yb);
+
+ void loadSpriteFrames(QString name);
+ void updateSpritePos();
+ void updateSpriteAngle();
+
+ QCanvas *canvas;
+ QPixmap pixmap;
+ QCanvasSprite *sprite;
+ QCanvasPixmapArray *spriteFrames;
+ QFont font;
+ double posX, posY;
+ int canvasWidth, canvasHeight;
+ int penWidth;
+ double direction;
+ int fgR, fgG, fgB;
+ bool pen;
+ bool wrap;
+ bool cutLoop;
+ QPoint prevStartPos3, prevStartPos2, prevStartPos1, prevEndPos3, prevEndPos2, prevEndPos1;
+};
+
+#endif // _CANVAS_H_