mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-13 10:51:12 +00:00
* Ignore Clipper, libpng, mcut and Boost.Polygon Internals in clang-tidy Each only works through a wrapper or umbrella header: libslic3r/clipper.hpp or clipper_z.hpp configure Clipper before including it, png.h pulls in libpng's config headers, and Boost.Polygon's headers only compile through polygon.hpp or voronoi.hpp. * Ignore minilzo's Config Headers in clang-tidy lzoconf.h and lzodefs.h are internal to minilzo.h, which is what the code includes. * Add Missing Includes Across the Remaining Sources and Tests Covers src/slic3r/Utils, src/slic3r/plugin, src/slic3r/Config, src/libvgcode, src/dev-utils, src/OrcaSlicer.cpp and tests/, the directories left after src/slic3r/GUI and src/libslic3r. Generated with clang-tidy misc-include-cleaner. libvgcode's own headers are included by relative path as in the rest of that library, and Catch2 and pybind11 with angle brackets as elsewhere in the repo. * Make the GUI and Test Headers Compile on Their Own Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Headers that only compile on one platform, or that nothing built includes, are left alone. * Keep Windows and nanosvg Setup Ahead of the Added Includes OrcaSlicer.cpp and several tests set _WIN32_WINNT, WIN32_LEAN_AND_MEAN or NOMINMAX before including Windows.h, and the profile validator defines NANOSVG_IMPLEMENTATION before any libslic3r header. The added includes had landed above those blocks, which broke the Windows build. * Add the GUI Includes the First Pass Missed Covers headers that only became editable once they compiled on their own, and wx symbols whose suggested header changed as the clang-tidy ignore list grew after the src/slic3r/GUI pass. * Keep the Added Test Includes Below the NOMINMAX Guard test_marchingsquares.cpp and test_texture_displacement.cpp had includes inside #ifndef NOMINMAX, which the tests inherit as defined on Windows from libslic3r, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory, as in #16068.
71 lines
2.0 KiB
C++
71 lines
2.0 KiB
C++
#include "MultiChoiceDialog.hpp"
|
|
|
|
#include "GUI_App.hpp"
|
|
#include "MainFrame.hpp"
|
|
#include <wx/anybutton.h>
|
|
#include <wx/string.h>
|
|
#include <wx/arrstr.h>
|
|
#include "slic3r/GUI/GUI_Utils.hpp"
|
|
#include <wx/checklst.h>
|
|
#include <wx/gdicmn.h>
|
|
#include <wx/toplevel.h>
|
|
#include <wx/sizer.h>
|
|
#include "slic3r/GUI/Widgets/Label.hpp"
|
|
#include "slic3r/GUI/Widgets/CheckList.hpp"
|
|
#include "slic3r/GUI/Widgets/DialogButtons.hpp"
|
|
#include <wx/event.h>
|
|
#include <wx/dynarray.h>
|
|
|
|
namespace Slic3r { namespace GUI {
|
|
|
|
MultiChoiceDialog::MultiChoiceDialog(
|
|
wxWindow* parent,
|
|
const wxString& message,
|
|
const wxString& caption,
|
|
const wxArrayString& choices
|
|
)
|
|
: DPIDialog(parent ? parent : static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, caption, wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
|
|
{
|
|
SetBackgroundColour(*wxWHITE);
|
|
|
|
wxBoxSizer* w_sizer = new wxBoxSizer(wxVERTICAL);
|
|
|
|
if(!message.IsEmpty()){
|
|
wxStaticText *msg = new wxStaticText(this, wxID_ANY, message);
|
|
msg->SetFont(Label::Body_13);
|
|
msg->Wrap(-1);
|
|
w_sizer->Add(msg, 0, wxRIGHT | wxLEFT | wxTOP, FromDIP(10));
|
|
}
|
|
|
|
m_check_list = new CheckList(this, choices);
|
|
|
|
w_sizer->Add(m_check_list, 1, wxRIGHT | wxLEFT | wxTOP | wxEXPAND, FromDIP(10));
|
|
|
|
auto dlg_btns = new DialogButtons(this, {"OK", "Cancel"});
|
|
|
|
dlg_btns->GetOK()->Bind( wxEVT_BUTTON, [this](wxCommandEvent &e) {EndModal(wxID_OK);});
|
|
dlg_btns->GetCANCEL()->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) {EndModal(wxID_CANCEL);});
|
|
|
|
w_sizer->Add(dlg_btns, 0, wxEXPAND);
|
|
|
|
SetSizer(w_sizer);
|
|
Layout();
|
|
w_sizer->Fit(this);
|
|
wxGetApp().UpdateDlgDarkUI(this);
|
|
}
|
|
|
|
wxArrayInt MultiChoiceDialog::GetSelections() const
|
|
{
|
|
return m_check_list->GetSelections();
|
|
}
|
|
|
|
void MultiChoiceDialog::SetSelections(wxArrayInt sel_array)
|
|
{
|
|
m_check_list->SetSelections(sel_array);
|
|
}
|
|
|
|
MultiChoiceDialog::~MultiChoiceDialog() {}
|
|
|
|
void MultiChoiceDialog::on_dpi_changed(const wxRect &suggested_rect) {}
|
|
|
|
}} // namespace Slic3r::GUI
|