FIX: TabCtrl padding & printer bed help icon

Change-Id: I451e93cb83a4ace4c1cec1ae275430a3971d9793
Jira: none
This commit is contained in:
chunmao.guo 2025-02-10 16:56:58 +08:00 committed by lane.wei
parent 5e6eacccf1
commit e5d4915518
2 changed files with 6 additions and 13 deletions

View File

@ -1553,7 +1553,7 @@ Sidebar::Sidebar(Plater *parent)
p->combo_printer_bed->wxEvtHandler::ProcessEvent(evt); p->combo_printer_bed->wxEvtHandler::ProcessEvent(evt);
}); });
ScalableButton *wiki_bed = new ScalableButton(p->panel_printer_bed, wxID_ANY, "dot"); ScalableButton *wiki_bed = new ScalableButton(p->panel_printer_bed, wxID_ANY, "help");
wiki_bed->Bind(wxEVT_BUTTON, [](wxCommandEvent) { wiki_bed->Bind(wxEVT_BUTTON, [](wxCommandEvent) {
wxLaunchDefaultBrowser("https://wiki.bambulab.com/en/x1/manual/compatibility-and-parameter-settings-of-filaments"); wxLaunchDefaultBrowser("https://wiki.bambulab.com/en/x1/manual/compatibility-and-parameter-settings-of-filaments");
}); });
@ -1576,14 +1576,6 @@ Sidebar::Sidebar(Plater *parent)
e.Skip(); // fix bug:Event spreads to sidebar e.Skip(); // fix bug:Event spreads to sidebar
}); });
{
auto hovered = std::make_shared<wxWindow *>();
for (wxWindow *w : std::initializer_list<wxWindow *>{p->panel_printer_bed, wiki_bed, p->image_printer_bed, p->combo_printer_bed}) {
w->Bind(wxEVT_ENTER_WINDOW, [w, hovered, wiki_bed](wxMouseEvent &evt) { *hovered = w; wiki_bed->SetBitmap_("help"); });
w->Bind(wxEVT_LEAVE_WINDOW, [w, hovered, wiki_bed](wxMouseEvent &evt) { if (*hovered == w) { wiki_bed->SetBitmap_("dot"); *hovered = nullptr; } });
}
}
wxBoxSizer *bed_type_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *bed_type_sizer = new wxBoxSizer(wxVERTICAL);
bed_type_sizer->AddStretchSpacer(1); bed_type_sizer->AddStretchSpacer(1);
wxBoxSizer *bed_type_hsizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *bed_type_hsizer = new wxBoxSizer(wxHORIZONTAL);

View File

@ -37,7 +37,9 @@ TabCtrl::TabCtrl(wxWindow * parent,
SetBorderColor(0xcecece); SetBorderColor(0xcecece);
sizer = new wxBoxSizer(wxHORIZONTAL); sizer = new wxBoxSizer(wxHORIZONTAL);
sizer->AddSpacer(10); sizer->AddSpacer(10);
SetSizer(sizer); auto hsizer = new wxBoxSizer(wxVERTICAL);
hsizer->Add(sizer, 0, wxEXPAND | wxBOTTOM, border_width * 4);
SetSizer(hsizer);
Bind(wxEVT_COMMAND_BUTTON_CLICKED, &TabCtrl::buttonClicked, this); Bind(wxEVT_COMMAND_BUTTON_CLICKED, &TabCtrl::buttonClicked, this);
//wxString reason; //wxString reason;
//IsTransparentBackgroundSupported(&reason); //IsTransparentBackgroundSupported(&reason);
@ -108,7 +110,7 @@ int TabCtrl::AppendItem(const wxString &item,
btns.push_back(btn); btns.push_back(btn);
if (btns.size() > 1) if (btns.size() > 1)
sizer->GetItem(sizer->GetItemCount() - 1)->SetMinSize({0, 0}); sizer->GetItem(sizer->GetItemCount() - 1)->SetMinSize({0, 0});
sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL | wxALL, TAB_BUTTON_SPACE); sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, TAB_BUTTON_SPACE);
sizer->AddStretchSpacer(1); sizer->AddStretchSpacer(1);
relayout(); relayout();
return btns.size() - 1; return btns.size() - 1;
@ -224,7 +226,6 @@ void TabCtrl::relayout()
if (item < btns.size()) if (item < btns.size())
offset += btns[item]->GetMinSize().x + TAB_BUTTON_SPACE * 2; offset += btns[item]->GetMinSize().x + TAB_BUTTON_SPACE * 2;
int width = GetSize().x; int width = GetSize().x;
auto sizer = GetSizer();
for (int i = 0; i < btns.size(); ++i) { for (int i = 0; i < btns.size(); ++i) {
auto size = btns[i]->GetMinSize().x + TAB_BUTTON_SPACE * 2; auto size = btns[i]->GetMinSize().x + TAB_BUTTON_SPACE * 2;
if (i < sel && offset > width) { if (i < sel && offset > width) {
@ -251,7 +252,7 @@ void TabCtrl::relayout()
// Keep spacing 2 ~ 10 TAB_BUTTON_SPACE // Keep spacing 2 ~ 10 TAB_BUTTON_SPACE
int b = GetSize().x - offset - 10 - (item + 1 - first) * TAB_BUTTON_SPACE * 8; int b = GetSize().x - offset - 10 - (item + 1 - first) * TAB_BUTTON_SPACE * 8;
sizer->GetItem(item * 2 + 2)->SetMinSize({b > 0 ? b : 0, 0}); sizer->GetItem(item * 2 + 2)->SetMinSize({b > 0 ? b : 0, 0});
sizer->Layout(); Layout();
} }
void TabCtrl::buttonClicked(wxCommandEvent &event) void TabCtrl::buttonClicked(wxCommandEvent &event)