#ifndef slic3r_GUI_AmsMappingPopup_hpp_ #define slic3r_GUI_AmsMappingPopup_hpp_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "GUI_Utils.hpp" #include "wxExtensions.hpp" #include "DeviceManager.hpp" #include "Plater.hpp" #include "BBLStatusBar.hpp" #include "BBLStatusBarSend.hpp" #include "Widgets/Label.hpp" #include "Widgets/Button.hpp" #include "Widgets/CheckBox.hpp" #include "Widgets/ComboBox.hpp" #include "Widgets/ScrolledWindow.hpp" #include #include namespace Slic3r { namespace GUI { #define MATERIAL_ITEM_SIZE wxSize(FromDIP(64), FromDIP(34)) #define MATERIAL_ITEM_REAL_SIZE wxSize(FromDIP(62), FromDIP(32)) #define AMS_TOTAL_COUNT 4 enum TrayType { NORMAL, THIRD, EMPTY }; struct TrayData { TrayType type; int id; std::string name; wxColour colour; }; class MaterialItem: public wxPanel { public: MaterialItem(wxWindow *parent,wxColour mcolour, wxString mname); ~MaterialItem(); wxColour m_material_coloul; wxString m_material_name; wxColour m_ams_coloul; wxString m_ams_name; bool m_selected {false}; bool m_warning{false}; void msw_rescale(); void set_ams_info(wxColour col, wxString txt); void on_normal(); void on_selected(); void on_warning(); void on_left_down(wxMouseEvent &evt); void paintEvent(wxPaintEvent &evt); void render(wxDC &dc); void doRender(wxDC &dc); }; class AmsMapingPopup : public wxPopupTransientWindow { public: AmsMapingPopup(wxWindow *parent); ~AmsMapingPopup() {}; std::vector m_materials_list; std::vector m_amsmapping_sizer_list; int m_current_filament_id; std::string m_tag_material; wxBoxSizer *m_sizer_main{nullptr}; void update_materials_list(std::vector list); void set_tag_texture(std::string texture); void update_ams_data(std::map amsList); void add_ams_mapping(std::vector tray_data); void set_current_filament_id(int id){m_current_filament_id = id;}; int get_current_filament_id(){return m_current_filament_id;}; bool is_match_material(int id, std::string material); virtual void OnDismiss() wxOVERRIDE; virtual bool ProcessLeftDown(wxMouseEvent &event) wxOVERRIDE; void paintEvent(wxPaintEvent &evt); }; wxDECLARE_EVENT(EVT_SET_FINISH_MAPPING, wxCommandEvent); }} // namespace Slic3r::GUI #endif