#ifndef OE_UI_TOOLBOX_H
#define OE_UI_TOOLBOX_H

#include "main.h"
#include "mainwindow.h"
#include <QtWidgets/qlabel.h>
#include <qtmaterialtooltabs.h>
#include <qtmaterialbutton.h>

class MainWindow;

class OE_ui_toolBox : public QWidget
{
	Q_OBJECT

public:
	OE_ui_toolBox(MainWindow* window, OE_root* root);

    OE_controller* getController();
    OE_interfaceDisplay* getInterfaceDisplay();
    OE_document* getDocument();
private:
	OE_root* root;
	MainWindow* window;
	QFont buttonFont;
    QtMaterialButton* setButton(QString name, const QObject *receiver, const char * method);
    QtMaterialButton* setButton(QString name,QString iconFile, const QObject *receiver, const char * method);
    QtMaterialIconButton* setIconButton(QString iconFile, const QObject *receiver, const char * method);
    void addFilesTools(QtMaterialToolTabs *tabs);
	void addGuidesTools(QtMaterialToolTabs *tabs);
	void addStitchTools(QtMaterialToolTabs *tabs);
	void addThreadTools(QtMaterialToolTabs *tabs);
	void addTechnicalTools(QtMaterialToolTabs *tabs);
	void addMachineTools(QtMaterialToolTabs *tabs);

    void setFilesDisplayStyle(OE_display::OE_displayStyle*);
    void setGuidesDisplayStyle(OE_display::OE_displayStyle*);
    void setStitchDisplayStyle(OE_display::OE_displayStyle*);
    void setThreadDisplayStyle(OE_display::OE_displayStyle*);
    void setTechnicalDisplayStyle(OE_display::OE_displayStyle*);
    void setMachineDisplayStyle(OE_display::OE_displayStyle*);

private slots:
    void currentTabChanged(int);

	void on_actionNew_triggered();

	void on_actionPattern1_triggered();
	void on_actionPattern2_triggered();
	void on_actionPattern3_triggered();
	void on_actionPattern4_triggered();
	void on_actionPattern5_triggered();
	void on_actionPattern6_triggered();
	void on_actionPattern7_triggered();
	void on_actionPattern8_triggered();
	void on_actionPattern9_triggered();

	void on_actionMachineRun_triggered();
	void on_actionMachineLoad_triggered();

	void on_machineConnectionChanged(bool connected);
};

#endif // OE_UI_TOOLBOX_H
