1 #ifndef _WIPE_TOWER_DIALOG_H_ 2 #define _WIPE_TOWER_DIALOG_H_ 3 4 #include <wx/spinctrl.h> 5 #include <wx/stattext.h> 6 #include <wx/textctrl.h> 7 #include <wx/checkbox.h> 8 #include <wx/msgdlg.h> 9 10 #include "RammingChart.hpp" 11 12 13 class RammingPanel : public wxPanel { 14 public: 15 RammingPanel(wxWindow* parent); 16 RammingPanel(wxWindow* parent,const std::string& data); 17 std::string get_parameters(); 18 19 private: 20 Chart* m_chart = nullptr; 21 wxSpinCtrl* m_widget_volume = nullptr; 22 wxSpinCtrl* m_widget_ramming_line_width_multiplicator = nullptr; 23 wxSpinCtrl* m_widget_ramming_step_multiplicator = nullptr; 24 wxSpinCtrlDouble* m_widget_time = nullptr; 25 int m_ramming_step_multiplicator; 26 int m_ramming_line_width_multiplicator; 27 28 void line_parameters_changed(); 29 }; 30 31 32 class RammingDialog : public wxDialog { 33 public: 34 RammingDialog(wxWindow* parent,const std::string& parameters); get_parameters()35 std::string get_parameters() { return m_output_data; } 36 private: 37 RammingPanel* m_panel_ramming = nullptr; 38 std::string m_output_data; 39 }; 40 41 42 43 44 45 46 47 class WipingPanel : public wxPanel { 48 public: 49 WipingPanel(wxWindow* parent, const std::vector<float>& matrix, const std::vector<float>& extruders, const std::vector<std::string>& extruder_colours, wxButton* widget_button); 50 std::vector<float> read_matrix_values(); 51 std::vector<float> read_extruders_values(); 52 void toggle_advanced(bool user_action = false); 53 void format_sizer(wxSizer* sizer, wxPanel* page, wxGridSizer* grid_sizer, const wxString& info, const wxString& table_title, int table_lshift=0); 54 55 private: 56 void fill_in_matrix(); 57 bool advanced_matches_simple(); 58 59 std::vector<wxSpinCtrl*> m_old; 60 std::vector<wxSpinCtrl*> m_new; 61 std::vector<std::vector<wxTextCtrl*>> edit_boxes; 62 std::vector<wxColour> m_colours; 63 unsigned int m_number_of_extruders = 0; 64 bool m_advanced = false; 65 wxPanel* m_page_simple = nullptr; 66 wxPanel* m_page_advanced = nullptr; 67 wxBoxSizer* m_sizer = nullptr; 68 wxBoxSizer* m_sizer_simple = nullptr; 69 wxBoxSizer* m_sizer_advanced = nullptr; 70 wxGridSizer* m_gridsizer_advanced = nullptr; 71 wxButton* m_widget_button = nullptr; 72 }; 73 74 75 76 77 78 class WipingDialog : public wxDialog { 79 public: 80 WipingDialog(wxWindow* parent, const std::vector<float>& matrix, const std::vector<float>& extruders, const std::vector<std::string>& extruder_colours); get_matrix() const81 std::vector<float> get_matrix() const { return m_output_matrix; } get_extruders() const82 std::vector<float> get_extruders() const { return m_output_extruders; } 83 84 85 private: 86 WipingPanel* m_panel_wiping = nullptr; 87 std::vector<float> m_output_matrix; 88 std::vector<float> m_output_extruders; 89 }; 90 91 #endif // _WIPE_TOWER_DIALOG_H_