FIX:fixed opening amsmapping popup will crash on linux
Change-Id: If67668582656fbb8ec52b49c36eccf1805d82b2e
This commit is contained in:
parent
32edd479df
commit
268dc00ee3
|
@ -245,8 +245,9 @@ void MaterialItem::doRender(wxDC &dc)
|
||||||
m_sizer_list = new wxBoxSizer(wxVERTICAL);
|
m_sizer_list = new wxBoxSizer(wxVERTICAL);
|
||||||
for (auto i = 0; i < AMS_TOTAL_COUNT; i++) {
|
for (auto i = 0; i < AMS_TOTAL_COUNT; i++) {
|
||||||
auto sizer_mapping_list = new wxBoxSizer(wxHORIZONTAL);
|
auto sizer_mapping_list = new wxBoxSizer(wxHORIZONTAL);
|
||||||
auto ams_mapping_item_container = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("ams_mapping_container", this, 78), wxDefaultPosition,
|
/*auto ams_mapping_item_container = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("ams_mapping_container", this, 78), wxDefaultPosition,
|
||||||
wxSize(FromDIP(230), FromDIP(78)), 0);
|
wxSize(FromDIP(230), FromDIP(78)), 0);*/
|
||||||
|
auto ams_mapping_item_container = new MappingContainer(this);
|
||||||
ams_mapping_item_container->SetSizer(sizer_mapping_list);
|
ams_mapping_item_container->SetSizer(sizer_mapping_list);
|
||||||
ams_mapping_item_container->Layout();
|
ams_mapping_item_container->Layout();
|
||||||
//ams_mapping_item_container->Hide();
|
//ams_mapping_item_container->Hide();
|
||||||
|
@ -1053,4 +1054,56 @@ bool AmsIntroducePopup::ProcessLeftDown(wxMouseEvent& event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MappingContainer::MappingContainer(wxWindow* parent)
|
||||||
|
: wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)
|
||||||
|
{
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
SetDoubleBuffered(true);
|
||||||
|
#endif //__WINDOWS__
|
||||||
|
SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE));
|
||||||
|
Bind(wxEVT_PAINT, &MappingContainer::paintEvent, this);
|
||||||
|
|
||||||
|
ams_mapping_item_container = create_scaled_bitmap("ams_mapping_container", this, 78);
|
||||||
|
|
||||||
|
SetMinSize(wxSize(FromDIP(230), FromDIP(78)));
|
||||||
|
SetMaxSize(wxSize(FromDIP(230), FromDIP(78)));
|
||||||
|
}
|
||||||
|
|
||||||
|
MappingContainer::~MappingContainer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MappingContainer::paintEvent(wxPaintEvent& evt)
|
||||||
|
{
|
||||||
|
wxPaintDC dc(this);
|
||||||
|
render(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MappingContainer::render(wxDC& dc)
|
||||||
|
{
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
wxSize size = GetSize();
|
||||||
|
wxMemoryDC memdc;
|
||||||
|
wxBitmap bmp(size.x, size.y);
|
||||||
|
memdc.SelectObject(bmp);
|
||||||
|
memdc.Blit({ 0, 0 }, size, &dc, { 0, 0 });
|
||||||
|
|
||||||
|
{
|
||||||
|
wxGCDC dc2(memdc);
|
||||||
|
doRender(dc2);
|
||||||
|
}
|
||||||
|
|
||||||
|
memdc.SelectObject(wxNullBitmap);
|
||||||
|
dc.DrawBitmap(bmp, 0, 0);
|
||||||
|
#else
|
||||||
|
doRender(dc);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void MappingContainer::doRender(wxDC& dc)
|
||||||
|
{
|
||||||
|
dc.DrawBitmap(ams_mapping_item_container, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
}} // namespace Slic3r::GUI
|
}} // namespace Slic3r::GUI
|
||||||
|
|
|
@ -114,6 +114,17 @@ public:
|
||||||
void doRender(wxDC &dc);
|
void doRender(wxDC &dc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MappingContainer : public wxPanel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxBitmap ams_mapping_item_container;
|
||||||
|
MappingContainer(wxWindow* parent);
|
||||||
|
~MappingContainer();
|
||||||
|
void paintEvent(wxPaintEvent& evt);
|
||||||
|
void render(wxDC& dc);
|
||||||
|
void doRender(wxDC& dc);
|
||||||
|
};
|
||||||
|
|
||||||
class AmsMapingPopup : public PopupWindow
|
class AmsMapingPopup : public PopupWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue