#pragma once

#include "basetoolbox_global.h"
#include "QToolAbstract.h"

namespace LAMPMainWidget {
    class RasterMainWidget;
}

class ToolBoxWidget;


class  BASETOOLBOX_EXPORT GF3ImportDataToolButton : public QToolAbstract {
	Q_OBJECT
public:
	GF3ImportDataToolButton(QWidget* parent = nullptr);
	~GF3ImportDataToolButton();
public slots:
	virtual void excute() override;

};

class  BASETOOLBOX_EXPORT Complex2AmpPhaseToolButton : public QToolAbstract {
	Q_OBJECT
public:
	Complex2AmpPhaseToolButton(QWidget* parent = nullptr);
	~Complex2AmpPhaseToolButton();
public slots:

	virtual void excute() override;

};

class  BASETOOLBOX_EXPORT QRDOrthProcessClassToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QRDOrthProcessClassToolButton(QWidget* parent = nullptr);
	~QRDOrthProcessClassToolButton();
public slots:

	virtual void excute() override;

};

class  BASETOOLBOX_EXPORT QOrthSlrRasterToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QOrthSlrRasterToolButton(QWidget* parent = nullptr);
	~QOrthSlrRasterToolButton();
public slots:
	virtual void excute() override;

};

class  BASETOOLBOX_EXPORT MergeRasterProcessToolButton : public QToolAbstract {
	Q_OBJECT
public:
	MergeRasterProcessToolButton(QWidget* parent = nullptr);
	~MergeRasterProcessToolButton();
public slots:
	virtual void excute() override;

};


class  BASETOOLBOX_EXPORT QDEMResampleDialogToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QDEMResampleDialogToolButton(QWidget* parent = nullptr);
	~QDEMResampleDialogToolButton();
public slots:
	virtual void excute() override;

};


class  BASETOOLBOX_EXPORT QDEMLLA2XYZToolToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QDEMLLA2XYZToolToolButton(QWidget* parent = nullptr);
	~QDEMLLA2XYZToolToolButton();
public slots:
	virtual void excute() override;

};


class  BASETOOLBOX_EXPORT QConvertCoordinateSystemToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QConvertCoordinateSystemToolButton(QWidget* parent = nullptr);
	~QConvertCoordinateSystemToolButton();
public  slots:
	virtual void excute() override;

};




class  BASETOOLBOX_EXPORT QResampleRefrenceRasterToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QResampleRefrenceRasterToolButton(QWidget* parent = nullptr);
	~QResampleRefrenceRasterToolButton();
public   slots:
	virtual void excute() override;

};


extern "C" BASETOOLBOX_EXPORT void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWidget* toolbox);
