104 lines
2.8 KiB
C++
104 lines
2.8 KiB
C++
#include "MultiMachinePage.hpp"
|
|
|
|
namespace Slic3r {
|
|
namespace GUI {
|
|
|
|
|
|
MultiMachinePage::MultiMachinePage(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
|
|
: wxPanel(parent, id, pos, size, style)
|
|
{
|
|
init_tabpanel();
|
|
m_main_sizer = new wxBoxSizer(wxHORIZONTAL);
|
|
m_main_sizer->Add(m_tabpanel, 1, wxEXPAND | wxLEFT, 0);
|
|
SetSizerAndFit(m_main_sizer);
|
|
Layout();
|
|
Fit();
|
|
|
|
wxGetApp().UpdateDarkUIWin(this);
|
|
|
|
init_timer();
|
|
Bind(wxEVT_TIMER, &MultiMachinePage::on_timer, this);
|
|
}
|
|
|
|
MultiMachinePage::~MultiMachinePage()
|
|
{
|
|
if (m_refresh_timer)
|
|
m_refresh_timer->Stop();
|
|
delete m_refresh_timer;
|
|
}
|
|
|
|
void MultiMachinePage::jump_to_send_page()
|
|
{
|
|
m_tabpanel->SetSelection(1);
|
|
}
|
|
|
|
void MultiMachinePage::on_sys_color_changed()
|
|
{
|
|
}
|
|
|
|
void MultiMachinePage::msw_rescale()
|
|
{
|
|
}
|
|
|
|
bool MultiMachinePage::Show(bool show)
|
|
{
|
|
if (show) {
|
|
m_refresh_timer->Stop();
|
|
m_refresh_timer->SetOwner(this);
|
|
m_refresh_timer->Start(2000);
|
|
wxPostEvent(this, wxTimerEvent());
|
|
}
|
|
else {
|
|
m_refresh_timer->Stop();
|
|
}
|
|
|
|
auto page = m_tabpanel->GetCurrentPage();
|
|
if (page)
|
|
page->Show(show);
|
|
return wxPanel::Show(show);
|
|
}
|
|
|
|
void MultiMachinePage::init_tabpanel()
|
|
{
|
|
auto m_side_tools = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(220), FromDIP(18)));
|
|
wxBoxSizer* sizer_side_tools = new wxBoxSizer(wxHORIZONTAL);
|
|
sizer_side_tools->Add(m_side_tools, 1, wxEXPAND, 0);
|
|
m_tabpanel = new Tabbook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, sizer_side_tools, wxNB_LEFT | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME);
|
|
m_tabpanel->SetBackgroundColour(wxColour("#FEFFFF"));
|
|
m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {; });
|
|
|
|
m_local_task_manager = new LocalTaskManagerPage(m_tabpanel);
|
|
m_cloud_task_manager = new CloudTaskManagerPage(m_tabpanel);
|
|
m_machine_manager = new MultiMachineManagerPage(m_tabpanel);
|
|
|
|
m_tabpanel->AddPage(m_machine_manager, _L("Device"), "", true);
|
|
m_tabpanel->AddPage(m_local_task_manager, _L("Task Sending"), "", false);
|
|
m_tabpanel->AddPage(m_cloud_task_manager, _L("Task Sent"), "", false);
|
|
}
|
|
|
|
|
|
void MultiMachinePage::init_timer()
|
|
{
|
|
m_refresh_timer = new wxTimer();
|
|
//m_refresh_timer->SetOwner(this);
|
|
//m_refresh_timer->Start(8000);
|
|
//wxPostEvent(this, wxTimerEvent());
|
|
}
|
|
|
|
void MultiMachinePage::on_timer(wxTimerEvent& event)
|
|
{
|
|
m_local_task_manager->update_page();
|
|
m_cloud_task_manager->update_page();
|
|
m_machine_manager->update_page();
|
|
}
|
|
|
|
void MultiMachinePage::clear_page()
|
|
{
|
|
m_local_task_manager->refresh_user_device(true);
|
|
m_cloud_task_manager->refresh_user_device(true);
|
|
m_machine_manager->refresh_user_device(true);
|
|
}
|
|
|
|
} // namespace GUI
|
|
} // namespace Slic3r
|