/*********************************************************************/
/*                                                                   */
/* Copyright 2022-2023 Rémi Synave - remi.synave@univ-littoral.fr    */
/*                                                                   */
/* This file is part of DSL.                                         */
/* This software uses Qt to build the Graphical User Interface       */
/* https://www.qt.io/                                                */
/*                                                                   */
/* DSL is free software: you can redistribute it and/or modify       */
/* it under the terms of the GNU General Public License as published */
/* by the Free Software Foundation, either version 3 of the License, */
/* or (at your option) any later version.                            */
/*                                                                   */
/* DSL 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 DSL. If not, see <http://www.gnu.org/licenses/>.       */
/*                                                                   */
/*********************************************************************/

#ifndef MAINWINDOW_HPP
#define MAINWINDOW_HPP

#include <QMainWindow>
#include <QAction>
#include <QMenu>
#include <QString>
#include <QMessageBox>

#include "WorkArea.hpp"


class MainWindow: public QMainWindow
{
  Q_OBJECT 


private:
  QMenu *fileMenu;
  QMenu *editMenu;
  QMenu *imageMenu;

  QAction *openAct;
  QAction *saveAct;
  QAction *exportAct;
  QAction *exitAct;
  QAction *automaticLoadingAct;
  QAction *readOnlyAct;
  QAction *firstImageAct;
  QAction *previousImageAct;
  QAction *nextImageAct;
  QAction *lastImageAct;
  QAction *aboutAct;

  WorkArea *wa;

  QStringList *filenames;
  int openedImage;
  QString *directoryname;
  QString *suffix;
  bool autoLoad;

  void createActions ();
  void createMenus ();
  void loadImage ();
  QMessageBox::StandardButton checkModificationinProgress();

		     

		     
private slots:
  void openFile ();
  void save ();
  void exportPNG ();
  void firstImage ();
  void previousImage ();
  void nextImage ();
  void lastImage ();
  void automaticLoading ();
  void readOnly ();
  void about ();

  
public:
  MainWindow ();
  
};

#endif
