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

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/HMSPanel.hpp>

Inheritance diagram for Slic3r::GUI::HMSNotifyItem:
Collaboration diagram for Slic3r::GUI::HMSNotifyItem:

Public Member Functions

 HMSNotifyItem (const std::string &dev_id, wxWindow *parent, DevHMSItem &item)
 ~HMSNotifyItem ()
void msw_rescale ()

Private Member Functions

void init_bitmaps ()
wxBitmap & get_notify_bitmap ()

Private Attributes

DevHMSItem & m_hms_item
std::string m_url
std::string dev_id
std::string long_error_code
wxPanel * m_panel_hms
wxStaticBitmap * m_bitmap_notify
wxStaticBitmap * m_bitmap_arrow
wxStaticText * m_hms_content
wxPanel * m_staticline
wxBitmap m_img_notify_lv1
wxBitmap m_img_notify_lv2
wxBitmap m_img_notify_lv3
wxBitmap m_img_arrow

Detailed Description

Constructor & Destructor Documentation

◆ HMSNotifyItem()

Slic3r::GUI::HMSNotifyItem::HMSNotifyItem ( const std::string & dev_id,
wxWindow * parent,
DevHMSItem & item )
32 : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
33 , m_hms_item(item)
34 , dev_id(dev_id)
35 , long_error_code(item.get_long_error_code())
36 , m_url(get_hms_wiki_url(item.get_long_error_code()))
37{
39
40 this->SetBackgroundColour(*wxWHITE);
41
42 auto main_sizer = new wxBoxSizer(wxVERTICAL);
43
44 m_panel_hms = new wxPanel(this, wxID_ANY, wxDefaultPosition, HMS_NOTIFY_ITEM_SIZE, wxTAB_TRAVERSAL);
45 m_panel_hms->SetBackgroundColour(*wxWHITE);
46 auto m_panel_sizer = new wxBoxSizer(wxVERTICAL);
47
48 auto m_panel_sizer_inner = new wxBoxSizer(wxHORIZONTAL);
49
50 m_bitmap_notify = new wxStaticBitmap(m_panel_hms, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0);
52
53 m_hms_content = new wxStaticText(m_panel_hms, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
54 m_hms_content->SetForegroundColour(*wxBLACK);
57 m_hms_content->SetLabelText(wxGetApp().get_hms_query()->query_hms_msg(dev_id, m_hms_item.get_long_error_code()));
59
60 m_bitmap_arrow = new wxStaticBitmap(m_panel_hms, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0);
61 if (!m_url.empty())
62 m_bitmap_arrow->SetBitmap(m_img_arrow);
63
64 m_panel_sizer_inner->Add(m_bitmap_notify, 0, wxALIGN_CENTER_VERTICAL, 0);
65 m_panel_sizer_inner->AddSpacer(FromDIP(8));
66 m_panel_sizer_inner->Add(m_hms_content, 0, wxALIGN_CENTER_VERTICAL, 0);
67 m_panel_sizer_inner->AddStretchSpacer();
68 m_panel_sizer_inner->Add(m_bitmap_arrow, 0, wxALIGN_CENTER_VERTICAL, 0);
69
70 m_panel_sizer->Add(m_panel_sizer_inner, 1, wxEXPAND | wxALL, FromDIP(20));
71
72 m_staticline = new wxPanel(m_panel_hms, wxID_DELETE, wxDefaultPosition, wxSize(-1, FromDIP(1)));
73 m_staticline->SetBackgroundColour(wxColour(238, 238, 238));
74
75 m_panel_sizer->Add(m_staticline, 0, wxLEFT | wxRIGHT | wxEXPAND, FromDIP(20));
76
77 m_panel_hms->SetSizer(m_panel_sizer);
78 m_panel_hms->Layout();
79 m_panel_sizer->Fit(m_panel_hms);
80
81 main_sizer->Add(m_panel_hms, 0, wxEXPAND, 0);
82
83 this->SetSizer(main_sizer);
84 this->Layout();
85
86#ifdef __linux__
87 m_panel_hms->Bind(wxEVT_ENTER_WINDOW, [this](wxMouseEvent& e) {
88 e.Skip();
89 if (!m_url.empty()) {
90 auto font = m_hms_content->GetFont();
91 font.SetUnderlined(true);
92 m_hms_content->SetFont(font);
93 Layout();
94 SetCursor(wxCURSOR_HAND);
95 }
96 });
97 m_panel_hms->Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent& e) {
98 e.Skip();
99 if (!m_url.empty()) {
100 auto font = m_hms_content->GetFont();
101 font.SetUnderlined(false);
102 m_hms_content->SetFont(font);
103 Layout();
104 SetCursor(wxCURSOR_ARROW);
105 }
106 });
107 m_panel_hms->Bind(wxEVT_LEFT_UP, [this](wxMouseEvent& e) {
108 if (!m_url.empty()) wxLaunchDefaultBrowser(m_url);
109 });
110 m_hms_content->Bind(wxEVT_LEFT_UP, [this](wxMouseEvent& e) {
111 if (!m_url.empty()) wxLaunchDefaultBrowser(m_url);
112 });
113#else
114 m_hms_content->Bind(wxEVT_ENTER_WINDOW, [this](wxMouseEvent& e) {
115 e.Skip();
116 if (!m_url.empty()) {
117 auto font = m_hms_content->GetFont();
118 font.SetUnderlined(true);
119 m_hms_content->SetFont(font);
120 Layout();
121 SetCursor(wxCURSOR_HAND);
122 }
123 });
124 m_hms_content->Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent& e) {
125 e.Skip();
126 if (!m_url.empty()) {
127 auto font = m_hms_content->GetFont();
128 font.SetUnderlined(false);
129 m_hms_content->SetFont(font);
130 Layout();
131 SetCursor(wxCURSOR_ARROW);
132 }
133 });
134 m_hms_content->Bind(wxEVT_LEFT_UP, [this](wxMouseEvent& e) {
135 wxCommandEvent evt(EVT_ALREADY_READ_HMS);
136 evt.SetString(long_error_code);
137 if (MonitorPanel* monitor = MonitorPanel::if_built())
138 wxPostEvent(monitor, evt);
139
140 if (!m_url.empty()) wxLaunchDefaultBrowser(m_url);
141 });
142#endif
143
144 wxGetApp().UpdateDarkUIWin(this);
145}
#define HMS_NOTIFY_ITEM_TEXT_SIZE
Definition HMSPanel.cpp:26
#define HMS_NOTIFY_ITEM_SIZE
Definition HMSPanel.cpp:27
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
wxStaticBitmap * m_bitmap_notify
Definition HMSPanel.hpp:31
void init_bitmaps()
Definition HMSPanel.cpp:150
std::string long_error_code
Definition HMSPanel.hpp:28
wxPanel * m_staticline
Definition HMSPanel.hpp:34
std::string m_url
Definition HMSPanel.hpp:26
wxBitmap & get_notify_bitmap()
Definition HMSPanel.cpp:157
std::string dev_id
Definition HMSPanel.hpp:27
wxStaticBitmap * m_bitmap_arrow
Definition HMSPanel.hpp:32
wxBitmap m_img_arrow
Definition HMSPanel.hpp:39
wxPanel * m_panel_hms
Definition HMSPanel.hpp:30
DevHMSItem & m_hms_item
Definition HMSPanel.hpp:25
wxStaticText * m_hms_content
Definition HMSPanel.hpp:33
static MonitorPanel * if_built()
Definition Lazy.hpp:183
wxMouseEvent
Definition CameraPopup.cpp:47
std::string get_hms_wiki_url(std::string error_code)
Definition HMS.cpp:673

References dev_id, Slic3r::GUI::get_hms_wiki_url(), get_notify_bitmap(), HMS_NOTIFY_ITEM_SIZE, HMS_NOTIFY_ITEM_TEXT_SIZE, Slic3r::GUI::LazyInstance< MonitorPanel >::if_built(), init_bitmaps(), long_error_code, m_bitmap_arrow, m_bitmap_notify, m_hms_content, m_hms_item, m_img_arrow, m_panel_hms, m_staticline, m_url, Slic3r::GUI::wxMouseEvent, and wxStaticText.

Here is the call graph for this function:

◆ ~HMSNotifyItem()

Slic3r::GUI::HMSNotifyItem::~HMSNotifyItem ( )
146 {
147 ;
148}

Member Function Documentation

◆ get_notify_bitmap()

wxBitmap & Slic3r::GUI::HMSNotifyItem::get_notify_bitmap ( )
private
158{
159 switch (m_hms_item.get_level()) {
160 case (HMS_FATAL):
161 return m_img_notify_lv1;
162 break;
163 case (HMS_SERIOUS):
164 return m_img_notify_lv2;
165 break;
166 case (HMS_COMMON):
167 return m_img_notify_lv3;
168 break;
169 case (HMS_INFO):
170 //return m_img_notify_lv4;
171 break;
172 default: break;
173 }
174 return wxNullBitmap;
175}
wxBitmap m_img_notify_lv1
Definition HMSPanel.hpp:36
wxBitmap m_img_notify_lv2
Definition HMSPanel.hpp:37
wxBitmap m_img_notify_lv3
Definition HMSPanel.hpp:38
@ HMS_SERIOUS
Definition DevHMS.h:35
@ HMS_COMMON
Definition DevHMS.h:36
@ HMS_INFO
Definition DevHMS.h:37
@ HMS_FATAL
Definition DevHMS.h:34

References Slic3r::HMS_COMMON, Slic3r::HMS_FATAL, Slic3r::HMS_INFO, Slic3r::HMS_SERIOUS, m_hms_item, m_img_notify_lv1, m_img_notify_lv2, and m_img_notify_lv3.

Referenced by HMSNotifyItem().

Here is the caller graph for this function:

◆ init_bitmaps()

void Slic3r::GUI::HMSNotifyItem::init_bitmaps ( )
private
150 {
151 m_img_notify_lv1 = create_scaled_bitmap("hms_notify_lv1", nullptr, 18);
152 m_img_notify_lv2 = create_scaled_bitmap("hms_notify_lv2", nullptr, 18);
153 m_img_notify_lv3 = create_scaled_bitmap("hms_notify_lv3", nullptr, 18);
154 m_img_arrow = create_scaled_bitmap("hms_arrow", nullptr, 14);
155}
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

References create_scaled_bitmap(), m_img_arrow, m_img_notify_lv1, m_img_notify_lv2, and m_img_notify_lv3.

Referenced by HMSNotifyItem().

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

◆ msw_rescale()

void Slic3r::GUI::HMSNotifyItem::msw_rescale ( )
inline
48{}

Member Data Documentation

◆ dev_id

std::string Slic3r::GUI::HMSNotifyItem::dev_id
private

Referenced by HMSNotifyItem().

◆ long_error_code

std::string Slic3r::GUI::HMSNotifyItem::long_error_code
private

Referenced by HMSNotifyItem().

◆ m_bitmap_arrow

wxStaticBitmap* Slic3r::GUI::HMSNotifyItem::m_bitmap_arrow
private

Referenced by HMSNotifyItem().

◆ m_bitmap_notify

wxStaticBitmap* Slic3r::GUI::HMSNotifyItem::m_bitmap_notify
private

Referenced by HMSNotifyItem().

◆ m_hms_content

wxStaticText* Slic3r::GUI::HMSNotifyItem::m_hms_content
private

Referenced by HMSNotifyItem().

◆ m_hms_item

DevHMSItem& Slic3r::GUI::HMSNotifyItem::m_hms_item
private

Referenced by HMSNotifyItem(), and get_notify_bitmap().

◆ m_img_arrow

wxBitmap Slic3r::GUI::HMSNotifyItem::m_img_arrow
private

Referenced by HMSNotifyItem(), and init_bitmaps().

◆ m_img_notify_lv1

wxBitmap Slic3r::GUI::HMSNotifyItem::m_img_notify_lv1
private

Referenced by get_notify_bitmap(), and init_bitmaps().

◆ m_img_notify_lv2

wxBitmap Slic3r::GUI::HMSNotifyItem::m_img_notify_lv2
private

Referenced by get_notify_bitmap(), and init_bitmaps().

◆ m_img_notify_lv3

wxBitmap Slic3r::GUI::HMSNotifyItem::m_img_notify_lv3
private

Referenced by get_notify_bitmap(), and init_bitmaps().

◆ m_panel_hms

wxPanel* Slic3r::GUI::HMSNotifyItem::m_panel_hms
private

Referenced by HMSNotifyItem().

◆ m_staticline

wxPanel* Slic3r::GUI::HMSNotifyItem::m_staticline
private

Referenced by HMSNotifyItem().

◆ m_url

std::string Slic3r::GUI::HMSNotifyItem::m_url
private

Referenced by HMSNotifyItem().


The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/HMSPanel.hpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/HMSPanel.cpp