mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "ParamsDialog.hpp"
 | |
| #include "I18N.hpp"
 | |
| #include "ParamsPanel.hpp"
 | |
| #include "GUI_App.hpp"
 | |
| #include "MainFrame.hpp"
 | |
| #include "Tab.hpp"
 | |
| 
 | |
| #include "libslic3r/Utils.hpp"
 | |
| 
 | |
| namespace pt = boost::property_tree;
 | |
| typedef pt::ptree JSON;
 | |
| 
 | |
| namespace Slic3r { 
 | |
| namespace GUI {
 | |
| 
 | |
| 
 | |
| ParamsDialog::ParamsDialog(wxWindow * parent)
 | |
| 	: DPIDialog(parent, wxID_ANY,  _L(""), wxDefaultPosition,
 | |
| 		wxDefaultSize, wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER)
 | |
| {
 | |
| 	m_panel = new ParamsPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL);
 | |
| 
 | |
| 	auto* topsizer = new wxBoxSizer(wxVERTICAL);
 | |
| 	topsizer->Add(m_panel, 1, wxALL | wxEXPAND, 0, NULL);
 | |
| 
 | |
| 	SetSizerAndFit(topsizer);
 | |
| 	SetSize({70 * em_unit(), 60 * em_unit()});
 | |
| 
 | |
| 	Layout();
 | |
| 	Center();
 | |
|     Bind(wxEVT_SHOW, [this](auto &event) {
 | |
|         if (IsShown()) {
 | |
|             m_winDisabler = new wxWindowDisabler(this);
 | |
|         } else {
 | |
|             delete m_winDisabler;
 | |
|             m_winDisabler = nullptr;
 | |
|         }
 | |
|     });
 | |
| 	Bind(wxEVT_CLOSE_WINDOW, [this](auto& event) {
 | |
| #if 0
 | |
| 		auto tab = dynamic_cast<Tab *>(m_panel->get_current_tab());
 | |
|         if (event.CanVeto() && tab->m_presets->current_is_dirty()) {
 | |
| 			bool ok = tab->may_discard_current_dirty_preset();
 | |
| 			if (!ok)
 | |
| 				event.Veto();
 | |
|             else {
 | |
|                 tab->m_presets->discard_current_changes();
 | |
|                 tab->load_current_preset();
 | |
|                 Hide();
 | |
|             }
 | |
|         } else {
 | |
|             Hide();
 | |
|         }
 | |
| #else
 | |
|         Hide();
 | |
| #endif
 | |
|     });
 | |
| }
 | |
| 
 | |
| void ParamsDialog::Popup()
 | |
| {
 | |
| #ifdef __WIN32__
 | |
|     Reparent(wxGetApp().mainframe);
 | |
| #endif
 | |
|     Center();
 | |
|     Show();
 | |
| }
 | |
| 
 | |
| void ParamsDialog::on_dpi_changed(const wxRect &suggested_rect)
 | |
| {
 | |
| 	Fit();
 | |
| 	SetSize({70 * em_unit(), 60 * em_unit()});
 | |
| 	m_panel->msw_rescale();
 | |
| 	Refresh();
 | |
| }
 | |
| 
 | |
| } // namespace GUI
 | |
| } // namespace Slic3r
 | 
