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);
});
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) {
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
});
{
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);
bed_type_sizer->AddStretchSpacer(1);
wxBoxSizer *bed_type_hsizer = new wxBoxSizer(wxHORIZONTAL);

View File

@ -37,7 +37,9 @@ TabCtrl::TabCtrl(wxWindow * parent,
SetBorderColor(0xcecece);
sizer = new wxBoxSizer(wxHORIZONTAL);
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);
//wxString reason;
//IsTransparentBackgroundSupported(&reason);
@ -108,7 +110,7 @@ int TabCtrl::AppendItem(const wxString &item,
btns.push_back(btn);
if (btns.size() > 1)
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);
relayout();
return btns.size() - 1;
@ -224,7 +226,6 @@ void TabCtrl::relayout()
if (item < btns.size())
offset += btns[item]->GetMinSize().x + TAB_BUTTON_SPACE * 2;
int width = GetSize().x;
auto sizer = GetSizer();
for (int i = 0; i < btns.size(); ++i) {
auto size = btns[i]->GetMinSize().x + TAB_BUTTON_SPACE * 2;
if (i < sel && offset > width) {
@ -251,7 +252,7 @@ void TabCtrl::relayout()
// Keep spacing 2 ~ 10 TAB_BUTTON_SPACE
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->Layout();
Layout();
}
void TabCtrl::buttonClicked(wxCommandEvent &event)