#ifndef GUI_H
#define GUI_H

#include <QMainWindow>
#include <QMessageBox>

namespace Ui {
class GUI;
}

class GUI : public QMainWindow
{
    Q_OBJECT

public:
    explicit GUI(QWidget *parent = 0);
    ~GUI();

private:
    void startPatching();

protected:
    void mouseMoveEvent( QMouseEvent* e );
    void mousePressEvent( QMouseEvent* e );
    void mouseReleaseEvent( QMouseEvent* e );
    void closeEvent( QCloseEvent * e );

signals:
    void patch_finished(QString result, bool ok);
    void update_percent(int percent);
    void update_label(QString label);

private slots:
    void on_close_btn_clicked();

    void on_fileDialogButton_clicked();

    void on_performAction_clicked();

    void on_patch_finished(QString result, bool ok);

    void on_update_percent(int newPercent);

    void on_update_label(QString label);

private:
    Ui::GUI *ui;
    int dx;
    int dy;
    QString state;
    QString datFilePath;
    QMessageBox message;
};

#endif // GUI_H
