PrusaSlicer-NonPlainar/xs/src/slic3r/GUI/WipeTowerDialog.hpp

82 lines
2.2 KiB
C++
Raw Normal View History

#ifndef _WIPE_TOWER_DIALOG_H_
#define _WIPE_TOWER_DIALOG_H_
#include <wx/spinctrl.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/choicdlg.h>
#include <wx/notebook.h>
#include <wx/msgdlg.h>
#include "../../libslic3r/GCode/WipeTowerPrusaMM.hpp"
#include "RammingChart.hpp"
// Human-readable output of Parameters structure
std::ostream& operator<<(std::ostream& str,Slic3r::WipeTowerParameters& par);
class RammingPanel : public wxPanel {
public:
RammingPanel(wxWindow* parent,const Slic3r::WipeTowerParameters& p);
void fill_parameters(Slic3r::WipeTowerParameters& p);
private:
Chart* m_chart = nullptr;
wxSpinCtrl* m_widget_volume = nullptr;
wxSpinCtrl* m_widget_ramming_line_width_multiplicator = nullptr;
wxSpinCtrl* m_widget_ramming_step_multiplicator = nullptr;
wxSpinCtrlDouble* m_widget_time = nullptr;
wxChoice* m_widget_extruder = nullptr;
std::vector<int> m_ramming_step_multiplicators;
std::vector<int> m_ramming_line_width_multiplicators;
int m_current_extruder = 0; // zero-based index
void extruder_selection_changed();
void line_parameters_changed();
};
class WipingPanel : public wxPanel {
public:
WipingPanel(wxWindow* parent,const Slic3r::WipeTowerParameters& p);
void fill_parameters(Slic3r::WipeTowerParameters& p);
private:
void fill_in_matrix();
std::vector<wxSpinCtrl*> m_old;
std::vector<wxSpinCtrl*> m_new;
std::vector<std::vector<wxTextCtrl*>> edit_boxes;
wxButton* m_widget_button=nullptr;
};
class WipeTowerDialog : public wxDialog {
public:
WipeTowerDialog(wxWindow* parent,const std::string& init_data);
std::string GetValue() const { return m_output_data; }
private:
std::string m_file_name="config_wipe_tower";
RammingPanel* m_panel_ramming = nullptr;
WipingPanel* m_panel_wiping = nullptr;
std::string m_output_data = "";
std::string read_dialog_values() {
Slic3r::WipeTowerParameters p;
m_panel_ramming->fill_parameters(p);
m_panel_wiping ->fill_parameters(p);
return p.to_string();
}
};
#endif // _WIPE_TOWER_DIALOG_H_