OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::uiAmsPercentHumidityDryPopup Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h>

Inheritance diagram for Slic3r::GUI::uiAmsPercentHumidityDryPopup:
Collaboration diagram for Slic3r::GUI::uiAmsPercentHumidityDryPopup:

Public Member Functions

 uiAmsPercentHumidityDryPopup (wxWindow *parent)
 ~uiAmsPercentHumidityDryPopup ()=default
void UpdateInfo (uiAmsHumidityInfo *info)
std::string get_owner_ams_id () const
void msw_rescale ()

Private Member Functions

void UpdateInfo (int humidiy_level, int humidity_percent, int left_dry_time, float current_temperature)
void UpdateContents ()
void Create ()

Private Attributes

std::string m_ams_id
int m_humidity_level = 0
int m_humidity_percent = 0
int m_left_dry_time = 0
float m_current_temperature = 0
ScalableBitmap drying_img
ScalableBitmap idle_img
wxStaticBitmap * m_humidity_img
wxStaticBitmap * m_dry_state_img
Label * m_dry_state
Label * m_humidity_header
Label * m_humidity_label
Label * m_temperature_header
Label * m_temperature_label
Label * left_dry_time_header
Label * left_dry_time_label
wxSizer * m_sizer

Detailed Description

Note: The popup of DevAms Humidity with percentage and dry time Author: xin.zhang

Constructor & Destructor Documentation

◆ uiAmsPercentHumidityDryPopup()

Slic3r::GUI::uiAmsPercentHumidityDryPopup::uiAmsPercentHumidityDryPopup ( wxWindow * parent)
31 : wxDialog(parent, wxID_ANY, "")
32{
33 Create();
34 wxGetApp().UpdateDlgDarkUI(this); // Orca: apply dark-mode theming to the popup
35}
void Create()
Definition uiAmsHumidityPopup.cpp:37

References Create().

Here is the call graph for this function:

◆ ~uiAmsPercentHumidityDryPopup()

Slic3r::GUI::uiAmsPercentHumidityDryPopup::~uiAmsPercentHumidityDryPopup ( )
default

Member Function Documentation

◆ Create()

void Slic3r::GUI::uiAmsPercentHumidityDryPopup::Create ( )
private
38{
39 // create images
40 idle_img = ScalableBitmap(this, "ams_drying", 16);
41 drying_img = ScalableBitmap(this, "ams_is_drying", 16); // Orca: use the drying-state icon
42
43 // background
44 SetBackgroundColour(*wxWHITE);
45
46 // create title sizer
47 wxSizer* title_sizer = new wxBoxSizer(wxHORIZONTAL);
48
49 Label* title = new Label(this, _L("Current AMS humidity"));
50 title->SetForegroundColour(*wxBLACK);
51 title->SetBackgroundColour(*wxWHITE);
52 title->SetFont(Label::Head_18);
53
54 title_sizer->AddStretchSpacer();
55 title_sizer->Add(title, 0);
56 title_sizer->AddStretchSpacer();
57
58 // create humidity image
59 m_humidity_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap);
60
61 // create dry state sizer
62 wxGridSizer* dry_state_sizer = new wxGridSizer(2, FromDIP(5), FromDIP(5));
63 m_dry_state_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap);
64 m_dry_state_img->SetMinSize(wxSize(FromDIP(16), FromDIP(16)));
65 m_dry_state_img->SetMaxSize(wxSize(FromDIP(16), FromDIP(16)));
66 m_dry_state = new Label(this);
67 m_dry_state->SetForegroundColour(*wxBLACK);
68 m_dry_state->SetBackgroundColour(*wxWHITE);
70 dry_state_sizer->Add(m_dry_state_img, 1, wxALIGN_RIGHT);
71 dry_state_sizer->Add(m_dry_state, 1, wxALIGN_LEFT);
72
73 // create table grid sizer
74 wxGridSizer* grid_sizer = new wxGridSizer(2, 3, FromDIP(10), FromDIP(10));
75 m_humidity_header = new Label(this, _L("Humidity"));
76 m_temperature_header = new Label(this, _L("Temperature"));
77 left_dry_time_header = new Label(this, _L("Left Time"));
78 m_humidity_label = new Label(this);
79 m_temperature_label = new Label(this);
80 left_dry_time_label = new Label(this);
81
82 grid_sizer->Add(m_humidity_header, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
83 grid_sizer->Add(m_temperature_header, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
84 grid_sizer->Add(left_dry_time_header, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
85 grid_sizer->Add(m_humidity_label, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
86 grid_sizer->Add(m_temperature_label, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
87 grid_sizer->Add(left_dry_time_label, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
88
89 // complete main sizer
90 m_sizer = new wxBoxSizer(wxVERTICAL);
91 m_sizer->AddSpacer(FromDIP(10));
92 m_sizer->Add(title_sizer, 1, wxEXPAND | wxHORIZONTAL);
93 m_sizer->Add(m_humidity_img, 1, wxALIGN_CENTER_HORIZONTAL, 0);
94 m_sizer->AddSpacer(FromDIP(10));
95 m_sizer->Add(dry_state_sizer, 1 ,wxEXPAND | wxHORIZONTAL);
96 m_sizer->Add(grid_sizer, 1, wxEXPAND | wxHORIZONTAL, FromDIP(15));
97 m_sizer->AddSpacer(FromDIP(10));
98 SetSizer(m_sizer);
99
100 SetSize(wxSize(FromDIP(400), FromDIP(270)));
101 SetMinSize(wxSize(FromDIP(400), FromDIP(270)));
102 SetMaxSize(wxSize(FromDIP(400), FromDIP(270)));
103
104 Fit();
105 Layout();
106 Refresh();
107}
#define _L(s)
Definition OBJ.cpp:34
static wxFont Head_18
Definition Label.hpp:42
static wxFont Body_14
Definition Label.hpp:53
wxSizer * m_sizer
Definition uiAmsHumidityPopup.h:83
Label * m_humidity_label
Definition uiAmsHumidityPopup.h:75
Label * m_humidity_header
Definition uiAmsHumidityPopup.h:74
Label * m_dry_state
Definition uiAmsHumidityPopup.h:72
wxStaticBitmap * m_dry_state_img
Definition uiAmsHumidityPopup.h:71
wxStaticBitmap * m_humidity_img
Definition uiAmsHumidityPopup.h:69
Label * m_temperature_label
Definition uiAmsHumidityPopup.h:78
Label * m_temperature_header
Definition uiAmsHumidityPopup.h:77
ScalableBitmap idle_img
Definition uiAmsHumidityPopup.h:66
Label * left_dry_time_header
Definition uiAmsHumidityPopup.h:80
ScalableBitmap drying_img
Definition uiAmsHumidityPopup.h:65
Label * left_dry_time_label
Definition uiAmsHumidityPopup.h:81

References _L, Label::Body_14, drying_img, Label::Head_18, idle_img, left_dry_time_header, left_dry_time_label, m_dry_state, m_dry_state_img, m_humidity_header, m_humidity_img, m_humidity_label, m_sizer, m_temperature_header, and m_temperature_label.

Referenced by uiAmsPercentHumidityDryPopup().

Here is the caller graph for this function:

◆ get_owner_ams_id()

std::string Slic3r::GUI::uiAmsPercentHumidityDryPopup::get_owner_ams_id ( ) const
inline
45{ return m_ams_id; }
std::string m_ams_id
Definition uiAmsHumidityPopup.h:57

References m_ams_id.

◆ msw_rescale()

void Slic3r::GUI::uiAmsPercentHumidityDryPopup::msw_rescale ( )
194{
195 idle_img.msw_rescale();
196 drying_img.msw_rescale();
198}
void UpdateContents()
Definition uiAmsHumidityPopup.cpp:123

References drying_img, idle_img, and UpdateContents().

Here is the call graph for this function:

◆ UpdateContents()

void Slic3r::GUI::uiAmsPercentHumidityDryPopup::UpdateContents ( )
private
124{
125 // humitidy image
126 if (0 < m_humidity_level && m_humidity_level < 6)
127 {
128 ScalableBitmap humitidy_image;
129 if (wxGetApp().dark_mode())
130 {
131 humitidy_image = ScalableBitmap(this, "hum_level" + std::to_string(m_humidity_level) + "_no_num_light", 64);
132 }
133 else
134 {
135 humitidy_image = ScalableBitmap(this, "hum_level" + std::to_string(m_humidity_level) + "_no_num_light", 64);
136 }
137
138 m_humidity_img->SetBitmap(humitidy_image.bmp());
139 }
140
141 // dry state
142 if (m_left_dry_time > 0)
143 {
144 m_dry_state_img->SetBitmap(drying_img.bmp());
145 m_dry_state->SetLabel(_L("Drying"));
146 m_dry_state->Fit();
147 }
148 else
149 {
150 m_dry_state_img->SetBitmap(idle_img.bmp());
151 m_dry_state->SetLabel(_L("Idle"));
152 m_dry_state->Fit();
153 }
154
155 // table grid
156 const wxString& humidity_str = wxString::Format("%d%%", m_humidity_percent);
157 m_humidity_label->SetLabel(humidity_str);
158 // Orca: format the temperature with an explicit UTF-8 \u2103 (no translation of a units-only format)
159 const wxString& temp_str = wxString::Format(wxString::FromUTF8(u8"%d\u2103" /* \u00b0C */), (int)std::round(m_current_temperature));
160 m_temperature_label->SetLabel(temp_str);
161
162 if (m_left_dry_time > 0)
163 {
164 wxString display_hour_str;
165 int left_hours = m_left_dry_time / 60;
166 if (left_hours < 10) {
167 display_hour_str = wxString::Format("0%d", left_hours);
168 } else {
169 display_hour_str = wxString::Format("%d", left_hours);
170 }
171
172 wxString display_min_str;
173 int left_minutes = m_left_dry_time % 60;
174 if (left_minutes < 10) {
175 display_min_str = wxString::Format("0%d", left_minutes);
176 } else {
177 display_min_str = wxString::Format("%d", left_minutes);
178 }
179
180 const wxString& time_str = wxString::Format("%s : %s", display_hour_str, display_min_str);
181 left_dry_time_label->SetLabel(time_str);
182 }
183 else
184 {
185 left_dry_time_label->SetLabel(_L("Idle"));
186 }
187
188 Fit();
189 Layout();
190 Refresh();
191}
const wxBitmap & bmp() const
Definition wxExtensions.hpp:189
int m_left_dry_time
Definition uiAmsHumidityPopup.h:61
float m_current_temperature
Definition uiAmsHumidityPopup.h:62
int m_humidity_level
Definition uiAmsHumidityPopup.h:59
int m_humidity_percent
Definition uiAmsHumidityPopup.h:60

References _L, ScalableBitmap::bmp(), drying_img, idle_img, left_dry_time_label, m_current_temperature, m_dry_state, m_dry_state_img, m_humidity_img, m_humidity_label, m_humidity_level, m_humidity_percent, m_left_dry_time, and m_temperature_label.

Referenced by msw_rescale(), and UpdateInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateInfo() [1/2]

void Slic3r::GUI::uiAmsPercentHumidityDryPopup::UpdateInfo ( int humidiy_level,
int humidity_percent,
int left_dry_time,
float current_temperature )
private
110{
111 if (m_humidity_level != humidiy_level || m_humidity_percent != humidity_percent ||
112 m_left_dry_time != left_dry_time || m_current_temperature != current_temperature)
113 {
114 m_humidity_level = humidiy_level;
115 m_humidity_percent = humidity_percent;
116 m_left_dry_time = left_dry_time;
117 m_current_temperature = current_temperature;
118
120 }
121}

References m_current_temperature, m_humidity_level, m_humidity_percent, m_left_dry_time, and UpdateContents().

Here is the call graph for this function:

◆ UpdateInfo() [2/2]

void Slic3r::GUI::uiAmsPercentHumidityDryPopup::UpdateInfo ( uiAmsHumidityInfo * info)
inline
43{ m_ams_id = info->ams_id; UpdateInfo(info->humidity_display_idx, info->humidity_percent, info->left_dry_time, info->current_temperature); };
void UpdateInfo(uiAmsHumidityInfo *info)
Definition uiAmsHumidityPopup.h:43

References Slic3r::GUI::uiAmsHumidityInfo::ams_id, Slic3r::GUI::uiAmsHumidityInfo::current_temperature, Slic3r::GUI::uiAmsHumidityInfo::humidity_display_idx, Slic3r::GUI::uiAmsHumidityInfo::humidity_percent, Slic3r::GUI::uiAmsHumidityInfo::left_dry_time, m_ams_id, and UpdateInfo().

Referenced by UpdateInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ drying_img

ScalableBitmap Slic3r::GUI::uiAmsPercentHumidityDryPopup::drying_img
private

Referenced by Create(), msw_rescale(), and UpdateContents().

◆ idle_img

ScalableBitmap Slic3r::GUI::uiAmsPercentHumidityDryPopup::idle_img
private

Referenced by Create(), msw_rescale(), and UpdateContents().

◆ left_dry_time_header

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::left_dry_time_header
private

Referenced by Create().

◆ left_dry_time_label

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::left_dry_time_label
private

Referenced by Create(), and UpdateContents().

◆ m_ams_id

std::string Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_ams_id
private

Referenced by get_owner_ams_id(), and UpdateInfo().

◆ m_current_temperature

float Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_current_temperature = 0
private

Referenced by UpdateContents(), and UpdateInfo().

◆ m_dry_state

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_dry_state
private

Referenced by Create(), and UpdateContents().

◆ m_dry_state_img

wxStaticBitmap* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_dry_state_img
private

Referenced by Create(), and UpdateContents().

◆ m_humidity_header

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_humidity_header
private

Referenced by Create().

◆ m_humidity_img

wxStaticBitmap* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_humidity_img
private

Referenced by Create(), and UpdateContents().

◆ m_humidity_label

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_humidity_label
private

Referenced by Create(), and UpdateContents().

◆ m_humidity_level

int Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_humidity_level = 0
private

Referenced by UpdateContents(), and UpdateInfo().

◆ m_humidity_percent

int Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_humidity_percent = 0
private

Referenced by UpdateContents(), and UpdateInfo().

◆ m_left_dry_time

int Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_left_dry_time = 0
private

Referenced by UpdateContents(), and UpdateInfo().

◆ m_sizer

wxSizer* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_sizer
private

Referenced by Create().

◆ m_temperature_header

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_temperature_header
private

Referenced by Create().

◆ m_temperature_label

Label* Slic3r::GUI::uiAmsPercentHumidityDryPopup::m_temperature_label
private

Referenced by Create(), and UpdateContents().


The documentation for this class was generated from the following files: