#ifndef OE_UI_TOOLBOX_H
#define OE_UI_TOOLBOX_H

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

class MainWindow;

class OE_ui_toolBox : public QWidget
{
	Q_OBJECT

public:
	OE_ui_toolBox(MainWindow* window, OE_root* root);
private:
	OE_root* root;
	MainWindow* window;
	QFont buttonFont;
    QtMaterialFlatButton* setButton(QString name, const QObject *receiver, const char * method);
    QtMaterialFlatButton* setButton(QString name,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 sendKeyPulse(Qt::Key key, Qt::KeyboardModifiers modifiers);

private slots:
	void on_actionNew_triggered();
	void on_actionOpen_triggered();
	void on_actionSave_triggered();

	void on_actionLine_triggered();
	void on_actionBirail_triggered();
	void on_actionFill_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_actionCloseCurve_triggered();
	//void on_actionReverse_curve_R_triggered();

	void on_actionMachineRun_triggered();
	void on_actionMachineLoad_triggered();

	void on_machineConnectionChanged(bool connected);
};

#endif // OE_UI_TOOLBOX_H
