69 :
PopupWindow(parent, wxBORDER_NONE | wxPU_CONTAINS_CONTROLS)
70{
71#ifdef __WINDOWS__
72 SetDoubleBuffered(true);
73#endif
74 m_panel =
new wxScrolledWindow(
this, wxID_ANY);
75 m_panel->SetBackgroundColour(*wxWHITE);
76
78
79 wxBoxSizer * main_sizer = new wxBoxSizer(wxHORIZONTAL);
80 wxBoxSizer * topSizer = new wxBoxSizer(wxVERTICAL);
81 wxBoxSizer * caption_sizer = new wxBoxSizer(wxHORIZONTAL);
82 wxBoxSizer * caption_left_sizer = new wxBoxSizer(wxHORIZONTAL);
83 wxBoxSizer * caption_right_sizer = new wxBoxSizer(wxHORIZONTAL);
85 wxString predict_text;
86 if (info)
88 auto prediction =
new wxStaticText(
m_panel, wxID_ANY, predict_text, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
89 caption_left_sizer->Add(prediction_bitmap, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
90 caption_left_sizer->Add(prediction, 1, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
91 prediction->Wrap(-1);
93 wxString cost_text;
94 if (info) {
95 if (info->weight > 0) {
96 cost_text = wxString::Format("%.2fg", info->weight);
97 } else {
98 cost_text = "0g";
99 }
100 }
101 auto used_g_text =
new wxStaticText(
m_panel, wxID_ANY, cost_text, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
102 caption_right_sizer->Add(cost_bitmap, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
103 caption_right_sizer->Add(used_g_text, 1, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
104
105 caption_sizer->Add(caption_left_sizer, 1, 0, FromDIP(5));
106 caption_sizer->Add(caption_right_sizer, 1, 0, FromDIP(5));
107
108 topSizer->Add(caption_sizer, 0, wxEXPAND | wxALL, 0);
109 auto static_line =
new StaticLine(
m_panel);
110 topSizer->Add(static_line, 0, wxEXPAND | wxALL, 0);
111 wxGridSizer *grid_sizer = new wxGridSizer(2, wxSize(FromDIP(10), 0));
112 if (info) {
113 for (
auto f : info->filaments_info) {
114 auto f_sizer = new wxBoxSizer(wxHORIZONTAL);
115 auto f_type =
new Button(
m_panel,
f.type);
116 f_type->SetBorderColor(BUTTON_BORDER_COL);
118 f_type->SetBackgroundColor(color);
119 auto textcolor = wxColour(0, 0, 0);
121 textcolor = wxColour(255, 255, 255);
122 else
123 textcolor = wxColour(0, 0, 0);
124
125 f_type->SetTextColor(textcolor);
126 f_type->SetSize(wxSize(FromDIP(40), FromDIP(20)));
127 f_type->SetMinSize(wxSize(FromDIP(40), FromDIP(20)));
128 f_type->SetMaxSize(wxSize(FromDIP(40), FromDIP(20)));
129 f_type->SetCornerRadius(FromDIP(10));
130
131 wxString used_g_text = wxString::Format(
"%.1fg",
f.used_g);
132 auto f_used_g =
new wxStaticText(
m_panel, wxID_ANY, used_g_text, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
133 f_used_g->Wrap(-1);
134 f_used_g->SetSize(wxSize(FromDIP(60), -1));
135 f_sizer->Add(f_type, 0, wxEXPAND | wxALL, FromDIP(5));
136 f_sizer->Add(f_used_g, 0, wxEXPAND | wxALL, FromDIP(5));
137 grid_sizer->Add(f_sizer, 0, wxEXPAND, 0);
138 f_type->Bind(wxEVT_LEFT_DOWN, [](auto &e) {});
139 }
140 }
141 topSizer->Add(grid_sizer, 0, wxALL, FromDIP(5));
142 main_sizer->Add(FromDIP(13), 0, 0, 0);
143 main_sizer->Add(topSizer, 0, wxEXPAND | wxALL, 0);
144 main_sizer->Add(FromDIP(13), 0, 0, 0);
145 main_sizer->SetMinSize(wxSize(FromDIP(200), -1));
148
150
151 SetClientSize(
m_panel->GetSize());
152}
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
float calc_gray(wxColour color)
Definition SliceInfoPanel.cpp:46
static wxColour decode_color(const std::string &color)
Definition SliceInfoPanel.cpp:51
std::string get_bbl_monitor_time_dhm(float time_in_secs)
Definition Utils.hpp:707
static double f(double x, double z_sin, double z_cos, bool vertical, bool flip)
Definition FillGyroid.cpp:124
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448