#ifndef __VECSCRN_H
#define __VECSCRN_H

#include "screen.h"
#include "figure.h"
#include "line.h"
#include "grid.h"
#include "point.h"


class VecScreen : public MScreen
{
  public:
    VecScreen( void );

    int mouseCallback( void );
    int keyCallback( int key );

    int main( int argc, char* argv[] );

  protected:
    void redraw( void );
    char* getFilename( char* );
    void setFigure( Figure* figure );
    void drawMousePos( void );
    inline void clearFlags( void );
    void doSmallFigure( void );

    Figure* myFigure;
    Figure* copyFigure;
    Figure* backupFigure;
    Figure* smallFigure;
    int isClipBoardEmpty; // zeigt an, ob copyFigure leer ist oder nicht

    ZeigerListe<Figure> figureList;

    char FileName[200];
    char FileNameAni[200];

    int bIdle;        // hat das System gerade Zeit oder nicht
    int mousePressed; // ist die linke Maustaste gedrueckt oder nicht
    int draw;         // wird gerade gezeichnet oder nicht
    int movePoint;    // wird gerade ein Punkt verschoben oder nicht
    int moveLine;     // wird gerade eine Line verschoben oder nicht
    int moveFigure;   // soll die ganze Figur verschoben werden oder nicht
    Line  *line;      // aktuelle Linie die gezeichnet wird
    Line  *oLine;     // aktuelle Linie die verschoben wird
    Line  *oldOLine;
    LineList* overLines;
    Point*    overPoint;

    int startx; // Startposition der Grids
    int starty; // Startposition der Grids
    int dx;     // x-Abstand der Linien
    int dy;     // y-Abstand der Linien
    int size;   // Anzahl der Linien
    Grid* grid;

    char optBlowup[100];  // Blowupfactor

};

#endif // __VECSCRN_H
