/**
  * mainwindow.h
  * Trida hlavniho okna.
  *
  * @author Michala Capkova
  */

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class QGraphicsScene;
class MapView;
class QAction;
class ModeSelectionDialog;
class QString;
class QListWidget;
class QSlider;
class QLabel;


class ExamWidget;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QGraphicsScene *scene;
    MapView *view;
    QAction *modeSelection;
    QListWidget *list;
    void loadBorder();
    void loadRegionsMap();
    void loadRegionsList();
    void loadCapitals();
    void loadTowns();
    ModeSelectionDialog *modeSelectionDialog;

    ExamWidget *examWidget;

    QDockWidget *listDockWidget;
    QDockWidget *arrowsDockWidget;
    QDockWidget *examDockWidget;

    QSlider *zoomSlider;
    QLabel *zoomLabel;

    static const QString BORDERS;
    static const QString REGIONS;
    static const QString CAPITALS;
    static const QString TOWNS;

    static const int TRANS = 500;
    static const int MIN_WIDTH = 200;
    static const int MAX_WIDTH = 200;
    static const int MAX_ZOOM = 200;
    static const int MIN_ZOOM = 100;
    static const int INTERVAL_ZOOM = 1;
    static const int WIDTH_SLIDER = 100;

    static const int BORDER_WIDTH = 2;


private slots:
    void selectMode();
    void itemWasSelected();
    void textWasSelected(QString name);
    void displayZoom(int value);
    void endTest();
    void setPrevious();
    void setNext();
    void showCorrectAnswer();
    void aboutProgram();



};

#endif // MAINWINDOW_H
