Files
OrcaSlicer-KX/src/slic3r/GUI/FilamentMapDialog.hpp
xun.zhang 347cd4aadd ENH: refine some ui logics with filament map
1. Optimize performance with pop up
2. Optimize display in dark mode

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic0f72a42e791fb58b84e7a88d7a34ced3a9e8c38
(cherry picked from commit 481ebc4a4b9353d8c9ef9d6bf64cb0006364e839)
2025-09-07 00:46:58 +08:00

70 lines
1.6 KiB
C++

#ifndef slic3r_FilamentMapDialog_hpp_
#define slic3r_FilamentMapDialog_hpp_
#include "FilamentMapPanel.hpp"
#include <vector>
#include "CapsuleButton.hpp"
class SwitchButton;
class ScalableButton;
class Button;
class wxStaticText;
namespace Slic3r {
class DynamicPrintConfig;
namespace GUI {
class DragDropPanel;
class FilamentMapDialog : public wxDialog
{
enum PageType {
ptAuto,
ptManual,
ptDefault
};
public:
FilamentMapDialog(wxWindow *parent,
const std::vector<std::string>& filament_color,
const std::vector<int> &filament_map,
const std::vector<int> &filaments,
const FilamentMapMode mode,
bool machine_synced,
bool show_default=true
);
FilamentMapMode get_mode();
const std::vector<int>& get_filament_maps() const { return m_filament_map; }
int ShowModal();
void set_modal_btn_labels(const wxString& left_label, const wxString& right_label);
private:
void on_ok(wxCommandEvent &event);
void on_cancle(wxCommandEvent &event);
void on_switch_mode(wxCommandEvent &event);
void update_panel_status(PageType page);
private:
FilamentMapManualPanel* m_manual_map_panel;
FilamentMapAutoPanel* m_auto_map_panel;
FilamentMapDefaultPanel* m_default_map_panel;
CapsuleButton* m_auto_btn;
CapsuleButton* m_manual_btn;
CapsuleButton* m_default_btn;
Button* m_ok_btn;
Button* m_cancel_btn;
PageType m_page_type;
private:
std::vector<int> m_filament_map;
std::vector<std::string> m_filament_color;
};
}} // namespace Slic3r::GUI
#endif /* slic3r_FilamentMapDialog_hpp_ */