300 : wxPanel(parent)
306{
307 SetName(wxT("FilamentMapManualPanel"));
309
310 auto top_sizer = new wxBoxSizer(wxVERTICAL);
311
312 m_description =
new Label(
this,
_L(
"We will slice according to this grouping method:"));
313 top_sizer->Add(
m_description, 0, wxALIGN_LEFT | wxLEFT, FromDIP(15));
315 top_sizer->AddSpacer(FromDIP(8));
316
317 auto drag_sizer = new wxBoxSizer(wxHORIZONTAL);
318
320 m_right_panel =
new SeparatedDragDropPanel(
this,
_L(
"Right Nozzle"),
false);
321 m_switch_btn =
new ScalableButton(
this, wxID_ANY,
"switch_filament_maps");
322
324
332 } else {
335 m_right_panel->AddColorBlock(color, type, idx + 1, is_high_flow);
336 }
337 }
340
342 drag_sizer->Add(
m_switch_btn, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(8));
344
345 top_sizer->Add(drag_sizer, 0, wxEXPAND);
346
347 m_tips =
new Label(
this,
_L(
"Tip: You can drag the filaments to reassign them to different nozzles."));
350 m_tips->Wrap(FromDIP(520));
351 top_sizer->AddSpacer(FromDIP(20));
352 top_sizer->Add(
m_tips, 0, wxALIGN_LEFT | wxLEFT, FromDIP(15));
353
358 top_sizer->AddSpacer(FromDIP(10));
359 top_sizer->Add(
m_errors, 0, wxALIGN_LEFT | wxLEFT, FromDIP(15));
360
362
365 auto suggestion_sizer = new wxBoxSizer(wxHORIZONTAL);
366 auto suggestion_text =
new Label(
m_suggestion_panel,
_L(
"Please adjust your grouping or click "));
369 suggestion_text->SetBackgroundColour(*wxWHITE);
370 auto suggestion_btn =
new ScalableButton(
m_suggestion_panel, wxID_ANY,
"edit", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER,
true, 14);
371 suggestion_btn->SetBackgroundColour(*wxWHITE);
375 suggestion_text2->SetBackgroundColour(*wxWHITE);
376 suggestion_sizer->Add(suggestion_text, 0, wxALIGN_CENTER_VERTICAL);
377 suggestion_sizer->Add(suggestion_btn, 0, wxALIGN_CENTER_VERTICAL);
378 suggestion_sizer->Add(suggestion_text2, 0, wxALIGN_CENTER_VERTICAL);
383
384
385
386
387
388
389
391 auto *max_nozzle_counts_opt = wxGetApp().preset_bundle->printers.get_edited_preset().config.option<
ConfigOptionIntsNullable>(
"extruder_max_nozzle_count");
392 auto *set_count_link =
new Label(
this,
_L(
"Set the physical nozzle count..."));
395 set_count_link->SetCursor(wxCursor(wxCURSOR_HAND));
396 top_sizer->AddSpacer(FromDIP(8));
397 top_sizer->Add(set_count_link, 0, wxALIGN_LEFT | wxLEFT, FromDIP(15));
398 const std::vector<int> max_counts = max_nozzle_counts_opt->values;
399 set_count_link->Bind(wxEVT_LEFT_DOWN, [max_counts](
wxMouseEvent &evt) {
400 for (int extruder_id = 0; extruder_id < (int) max_counts.size(); ++extruder_id) {
403 }
404 evt.Skip();
405 });
406 }
407
411
413
414 SetSizer(top_sizer);
415 SetMinSize(wxSize(FromDIP(580), -1));
416 Layout();
417 Fit();
418 GUI::wxGetApp().UpdateDarkUIWin(this);
419}
#define _L(s)
Definition OBJ.cpp:34
static wxFont Body_13
Definition Label.hpp:54
static wxFont Body_14
Definition Label.hpp:53
static int nil_value()
Definition Config.hpp:1083
std::vector< std::string > m_filament_type
Definition FilamentMapPanel.hpp:68
std::vector< int > m_filament_volume_map
Definition FilamentMapPanel.hpp:65
DragDropPanel * m_left_panel
Definition FilamentMapPanel.hpp:54
wxTimer * m_timer
Definition FilamentMapPanel.hpp:70
SeparatedDragDropPanel * m_right_panel
Definition FilamentMapPanel.hpp:55
std::vector< int > m_filament_list
Definition FilamentMapPanel.hpp:66
void OnTimer(wxTimerEvent &evt)
Definition FilamentMapPanel.cpp:58
Label * m_errors
Definition FilamentMapPanel.hpp:59
ScalableButton * m_switch_btn
Definition FilamentMapPanel.hpp:62
void OnDragDropCompleted(wxCommandEvent &evt)
Definition FilamentMapPanel.cpp:288
Label * m_description
Definition FilamentMapPanel.hpp:57
std::vector< int > m_filament_map
Definition FilamentMapPanel.hpp:64
void UpdateNozzleVolumeType()
Definition FilamentMapPanel.cpp:421
wxPanel * m_suggestion_panel
Definition FilamentMapPanel.hpp:60
void OnSuggestionClicked(wxCommandEvent &event)
Definition FilamentMapPanel.cpp:162
std::vector< std::string > m_filament_color
Definition FilamentMapPanel.hpp:67
void OnSwitchFilament(wxCommandEvent &)
Definition FilamentMapPanel.cpp:477
Label * m_tips
Definition FilamentMapPanel.hpp:58
wxMouseEvent
Definition CameraPopup.cpp:47
void manuallySetNozzleCount(int extruder_id)
Definition MultiNozzleSync.cpp:320
static bool printer_has_multi_nozzle_extruder()
Definition FilamentMapPanel.cpp:49
static const wxColour BgNormalColor
Definition CapsuleButton.cpp:18
static const wxColour TextNormalGreyColor
Definition FilamentMapPanel.cpp:41
static const wxColour BorderSelectedColor
Definition FilamentMapPanel.cpp:37
wxColor Hex2Color(const std::string &str)
Definition DragDropPanel.cpp:42
static const wxColour TextErrorColor
Definition FilamentMapPanel.cpp:43
@ nvtHighFlow
Definition PrintConfig.hpp:620
ConfigOptionIntsTempl< true > ConfigOptionIntsNullable
Definition Config.hpp:1155
zaa_minimize_perimeter_height filament_map((ConfigOptionInts, filament_volume_map))((ConfigOptionInts