mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-01-30 15:38:43 +03:00
fix some bug
This commit is contained in:
@@ -324,12 +324,14 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent)
|
|||||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
sizer->Add(sync_btn, 0, wxALIGN_CENTER_VERTICAL);
|
sizer->Add(sync_btn, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
sync_btn->Bind(wxEVT_BUTTON, [parent](wxCommandEvent& e){
|
sync_btn->Bind(wxEVT_BUTTON, [parent](wxCommandEvent& e){
|
||||||
//y25
|
//y25 y28
|
||||||
std::string ph_host = "";
|
std::string ph_host = "";
|
||||||
|
std::string ph_api_key = "";
|
||||||
bool has_select_printer = wxGetApp().preset_bundle->physical_printers.has_selection();
|
bool has_select_printer = wxGetApp().preset_bundle->physical_printers.has_selection();
|
||||||
if (has_select_printer) {
|
if (has_select_printer) {
|
||||||
PhysicalPrinter& ph_printer = wxGetApp().preset_bundle->physical_printers.get_selected_printer();
|
PhysicalPrinter& ph_printer = wxGetApp().preset_bundle->physical_printers.get_selected_printer();
|
||||||
ph_host = ph_printer.config.opt_string("print_host");
|
ph_host = ph_printer.config.opt_string("print_host");
|
||||||
|
ph_api_key = ph_printer.config.opt_string("printhost_apikey");
|
||||||
}
|
}
|
||||||
|
|
||||||
GetBoxInfoDialog dlg(wxGetApp().plater());
|
GetBoxInfoDialog dlg(wxGetApp().plater());
|
||||||
@@ -337,7 +339,7 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent)
|
|||||||
dlg.ShowModal();
|
dlg.ShowModal();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
dlg.synchronize_by_ip(ph_host);
|
dlg.synchronize_by_ip(ph_host, ph_api_key);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return sizer;
|
return sizer;
|
||||||
|
|||||||
@@ -7404,6 +7404,8 @@ void Plater::send_gcode()
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string sync_ip = box_msg.box_list_printer_ip;
|
std::string sync_ip = box_msg.box_list_printer_ip;
|
||||||
|
//y28
|
||||||
|
std::string sync_api_key = box_msg.box_list_printer_api_key;
|
||||||
|
|
||||||
bool has_diff = false;
|
bool has_diff = false;
|
||||||
|
|
||||||
@@ -7418,7 +7420,8 @@ void Plater::send_gcode()
|
|||||||
QIDINetwork qidi;
|
QIDINetwork qidi;
|
||||||
wxString msg = "";
|
wxString msg = "";
|
||||||
GUI::Box_info filament_info;
|
GUI::Box_info filament_info;
|
||||||
filament_info = qidi.get_box_info(msg, sync_ip);
|
//y28
|
||||||
|
filament_info = qidi.get_box_info(msg, sync_ip, sync_api_key);
|
||||||
GUI::Box_info cur_box_info;
|
GUI::Box_info cur_box_info;
|
||||||
cur_box_info = get_cur_box_info();
|
cur_box_info = get_cur_box_info();
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,8 @@ struct Box_msg {
|
|||||||
std::vector<std::string> filament_type;
|
std::vector<std::string> filament_type;
|
||||||
std::string box_list_preset_name;
|
std::string box_list_preset_name;
|
||||||
std::string box_list_printer_ip;
|
std::string box_list_printer_ip;
|
||||||
|
//y28
|
||||||
|
std::string box_list_printer_api_key;
|
||||||
int box_count = 0;
|
int box_count = 0;
|
||||||
int auto_reload_detect = 0;
|
int auto_reload_detect = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ namespace Slic3r { namespace GUI {
|
|||||||
SetIcon(wxIcon(icon_path.c_str(), wxBITMAP_TYPE_ICO));
|
SetIcon(wxIcon(icon_path.c_str(), wxBITMAP_TYPE_ICO));
|
||||||
|
|
||||||
Freeze();
|
Freeze();
|
||||||
SetBackgroundColour(m_colour_def_color);
|
|
||||||
|
|
||||||
m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
||||||
m_sizer_main->SetMinSize(wxSize(0, -1));
|
m_sizer_main->SetMinSize(wxSize(0, -1));
|
||||||
@@ -39,17 +38,20 @@ namespace Slic3r { namespace GUI {
|
|||||||
m_stext_printer_title = new wxStaticText(this, wxID_ANY, _L("Printer"), wxDefaultPosition, wxSize(-1, -1), 0);
|
m_stext_printer_title = new wxStaticText(this, wxID_ANY, _L("Printer"), wxDefaultPosition, wxSize(-1, -1), 0);
|
||||||
m_stext_printer_title->SetFont(::Label::Head_14);
|
m_stext_printer_title->SetFont(::Label::Head_14);
|
||||||
m_stext_printer_title->Wrap(-1);
|
m_stext_printer_title->Wrap(-1);
|
||||||
m_stext_printer_title->SetForegroundColour(m_colour_bold_color);
|
|
||||||
m_stext_printer_title->SetBackgroundColour(m_colour_def_color);
|
|
||||||
|
|
||||||
m_comboBox_printer = new ::ComboBox(this, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(250), 20), 0, nullptr, wxCB_READONLY);
|
m_comboBox_printer = new ::ComboBox(this, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(250), 20), 0, nullptr, wxCB_READONLY);
|
||||||
|
|
||||||
m_sizer_printer->Add(m_stext_printer_title, 0, wxALIGN_CENTER | wxALL, FromDIP(5));
|
m_sizer_printer->Add(m_stext_printer_title, 0, wxALIGN_CENTER | wxALL, FromDIP(5));
|
||||||
m_sizer_printer->Add(0, 0, 0, wxEXPAND | wxALIGN_CENTER | wxLEFT, FromDIP(12));
|
m_sizer_printer->Add(0, 0, 0, wxEXPAND | wxALIGN_CENTER | wxLEFT, FromDIP(12));
|
||||||
m_sizer_printer->Add(m_comboBox_printer, 1, wxEXPAND | wxALIGN_CENTER | wxALL, FromDIP(5));
|
m_sizer_printer->Add(m_comboBox_printer, 1, wxEXPAND | wxALIGN_CENTER | wxALL, FromDIP(5));
|
||||||
|
|
||||||
wxPanel* switch_button_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxTAB_TRAVERSAL | wxBU_RIGHT);
|
wxPanel* switch_button_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxTAB_TRAVERSAL | wxBU_RIGHT);
|
||||||
wxBoxSizer* sizer_switch_area = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer* sizer_switch_area = new wxBoxSizer(wxHORIZONTAL);
|
||||||
switch_button_panel->SetBackgroundColour((wxColour("#FFFFFF")));
|
//y28
|
||||||
|
#ifdef _WIN32
|
||||||
|
bool is_dark = wxGetApp().app_config->get_bool("dark_color_mode");
|
||||||
|
switch_button_panel->SetBackgroundColour(is_dark ? wxColour(43, 43, 43) : wxColour(255, 255, 255));
|
||||||
|
#endif
|
||||||
m_switch_button = new SwitchButton(switch_button_panel);
|
m_switch_button = new SwitchButton(switch_button_panel);
|
||||||
m_switch_button->SetMaxSize(wxSize(100, 100));
|
m_switch_button->SetMaxSize(wxSize(100, 100));
|
||||||
m_switch_button->SetLabels(_L("Local"), _L("Link"));
|
m_switch_button->SetLabels(_L("Local"), _L("Link"));
|
||||||
@@ -61,6 +63,8 @@ namespace Slic3r { namespace GUI {
|
|||||||
m_comboBox_printer->SetValue("");
|
m_comboBox_printer->SetValue("");
|
||||||
m_comboBox_printer->Clear();
|
m_comboBox_printer->Clear();
|
||||||
m_printer_ip.clear();
|
m_printer_ip.clear();
|
||||||
|
//y28
|
||||||
|
m_printer_api_key.clear();
|
||||||
PresetBundle& preset_bundle = *wxGetApp().preset_bundle;
|
PresetBundle& preset_bundle = *wxGetApp().preset_bundle;
|
||||||
PhysicalPrinterCollection& ph_printers = wxGetApp().preset_bundle->physical_printers;
|
PhysicalPrinterCollection& ph_printers = wxGetApp().preset_bundle->physical_printers;
|
||||||
std::string preset_typename = NormalizeVendor(preset_bundle.printers.get_edited_preset().name);
|
std::string preset_typename = NormalizeVendor(preset_bundle.printers.get_edited_preset().name);
|
||||||
@@ -71,6 +75,8 @@ namespace Slic3r { namespace GUI {
|
|||||||
if (preset_typename.find(NormalizeVendor(printer_preset)) != std::string::npos) {
|
if (preset_typename.find(NormalizeVendor(printer_preset)) != std::string::npos) {
|
||||||
m_comboBox_printer->Append(from_u8(printer_name));
|
m_comboBox_printer->Append(from_u8(printer_name));
|
||||||
m_printer_ip.push_back((it->config.opt_string("print_host")));
|
m_printer_ip.push_back((it->config.opt_string("print_host")));
|
||||||
|
//y28
|
||||||
|
m_printer_api_key.push_back((it->config.opt_string("printhost_apikey")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_comboBox_printer->SetSelection(0);
|
m_comboBox_printer->SetSelection(0);
|
||||||
@@ -102,23 +108,16 @@ namespace Slic3r { namespace GUI {
|
|||||||
switch_button_panel->Layout();
|
switch_button_panel->Layout();
|
||||||
m_sizer_printer->Add(switch_button_panel, 0, wxALL | wxALIGN_CENTER, FromDIP(5));
|
m_sizer_printer->Add(switch_button_panel, 0, wxALL | wxALIGN_CENTER, FromDIP(5));
|
||||||
|
|
||||||
wxBoxSizer* m_sizer_btn = new wxBoxSizer(wxHORIZONTAL);
|
//y28
|
||||||
btn_bg_enable = StateColor(
|
wxStdDialogButtonSizer* btns = this->CreateStdDialogButtonSizer(wxOK | wxCANCEL);
|
||||||
std::pair<wxColour, int>(wxColour(95, 82, 253), StateColor::Pressed),
|
m_button_sync = static_cast<wxButton*>(this->FindWindowById(wxID_OK, this));
|
||||||
std::pair<wxColour, int>(wxColour(129, 150, 255), StateColor::Hovered),
|
m_button_cancel = static_cast<wxButton*>(this->FindWindowById(wxID_CANCEL, this));
|
||||||
std::pair<wxColour, int>(wxColour(68, 121, 251), StateColor::Normal));
|
|
||||||
|
|
||||||
m_button_sync = new wxButton(this, wxID_ANY, _L("Sync"), wxDefaultPosition, wxSize(60, 25), wxBU_EXACTFIT);
|
|
||||||
wxGetApp().UpdateDarkUI(m_button_sync, true);
|
|
||||||
m_button_sync->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::synchronization, this);
|
m_button_sync->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::synchronization, this);
|
||||||
|
m_button_sync->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::cancel, this);
|
||||||
m_button_cancel = new wxButton(this, wxID_ANY, _L("Cancel"), wxDefaultPosition, wxSize(60, 25), wxBU_EXACTFIT);
|
#ifdef _WIN32
|
||||||
wxGetApp().UpdateDarkUI(m_button_cancel, true);
|
wxGetApp().UpdateDarkUI(m_button_sync);
|
||||||
m_button_cancel->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::cancel, this);
|
wxGetApp().UpdateDarkUI(m_button_cancel);
|
||||||
|
#endif
|
||||||
m_sizer_btn->AddStretchSpacer();
|
|
||||||
m_sizer_btn->Add(m_button_sync, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
|
|
||||||
m_sizer_btn->Add(m_button_cancel, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
|
|
||||||
|
|
||||||
m_sizer_main->Add(m_line_top, 0, wxEXPAND | wxTOP, FromDIP(0));
|
m_sizer_main->Add(m_line_top, 0, wxEXPAND | wxTOP, FromDIP(0));
|
||||||
m_sizer_main->AddSpacer(FromDIP(10));
|
m_sizer_main->AddSpacer(FromDIP(10));
|
||||||
@@ -126,7 +125,7 @@ namespace Slic3r { namespace GUI {
|
|||||||
m_sizer_main->AddSpacer(FromDIP(15));
|
m_sizer_main->AddSpacer(FromDIP(15));
|
||||||
m_sizer_main->Add(m_sizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
m_sizer_main->Add(m_sizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
||||||
m_sizer_main->AddSpacer(FromDIP(25));
|
m_sizer_main->AddSpacer(FromDIP(25));
|
||||||
m_sizer_main->Add(m_sizer_btn, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
m_sizer_main->Add(btns, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
||||||
m_sizer_main->AddSpacer(FromDIP(10));
|
m_sizer_main->AddSpacer(FromDIP(10));
|
||||||
|
|
||||||
SetSizer(m_sizer_main);
|
SetSizer(m_sizer_main);
|
||||||
@@ -162,19 +161,27 @@ void GetBoxInfoDialog::synchronization(wxCommandEvent &event)
|
|||||||
#if QDT_RELEASE_TO_PUBLIC
|
#if QDT_RELEASE_TO_PUBLIC
|
||||||
int selected_idx = m_comboBox_printer->GetSelection();
|
int selected_idx = m_comboBox_printer->GetSelection();
|
||||||
std::string printer_ip = m_printer_ip[selected_idx];
|
std::string printer_ip = m_printer_ip[selected_idx];
|
||||||
|
//y28
|
||||||
|
std::string printer_api_key = "";
|
||||||
|
if(!m_printer_api_key.empty())
|
||||||
|
printer_api_key = m_printer_api_key[selected_idx];
|
||||||
|
|
||||||
|
m_sync_printer_ip = printer_ip;
|
||||||
|
m_sync_printer_api_key = printer_api_key;
|
||||||
|
|
||||||
QIDINetwork qidi;
|
QIDINetwork qidi;
|
||||||
wxString msg = "";
|
wxString msg = "";
|
||||||
bool has_box = qidi.get_box_state(msg, printer_ip);
|
//y28
|
||||||
|
bool has_box = qidi.get_box_state(msg, printer_ip, printer_api_key);
|
||||||
if (!has_box) {
|
if (!has_box) {
|
||||||
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
|
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Get Box_info
|
//Get Box_info
|
||||||
GUI::Box_info filament_info;
|
GUI::Box_info filament_info;
|
||||||
filament_info = qidi.get_box_info(msg, printer_ip);
|
filament_info = qidi.get_box_info(msg, printer_ip, printer_api_key);
|
||||||
m_plater->current_box_info = filament_info;
|
m_plater->current_box_info = filament_info;
|
||||||
qidi.get_color_filament_str(msg, filament_info, printer_ip);
|
qidi.get_color_filament_str(msg, filament_info, printer_ip, printer_api_key);
|
||||||
generate_filament_id(filament_info);
|
generate_filament_id(filament_info);
|
||||||
syn_box_info = std::move(filament_info);
|
syn_box_info = std::move(filament_info);
|
||||||
update_filament_info(filament_info);
|
update_filament_info(filament_info);
|
||||||
@@ -190,23 +197,25 @@ void GetBoxInfoDialog::synchronization(wxCommandEvent &event)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetBoxInfoDialog::synchronize_by_ip(std::string ip)
|
//y28
|
||||||
|
void GetBoxInfoDialog::synchronize_by_ip(std::string ip, std::string api_key)
|
||||||
{
|
{
|
||||||
#if QDT_RELEASE_TO_PUBLIC
|
#if QDT_RELEASE_TO_PUBLIC
|
||||||
m_sync_printer_ip = ip;
|
m_sync_printer_ip = ip;
|
||||||
|
m_sync_printer_api_key = api_key;
|
||||||
|
|
||||||
QIDINetwork qidi;
|
QIDINetwork qidi;
|
||||||
wxString msg = "";
|
wxString msg = "";
|
||||||
bool has_box = qidi.get_box_state(msg, m_sync_printer_ip);
|
bool has_box = qidi.get_box_state(msg, m_sync_printer_ip, m_sync_printer_api_key);
|
||||||
if (!has_box) {
|
if (!has_box) {
|
||||||
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
|
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Get Box_info
|
//Get Box_info
|
||||||
GUI::Box_info filament_info;
|
GUI::Box_info filament_info;
|
||||||
filament_info = qidi.get_box_info(msg, m_sync_printer_ip);
|
filament_info = qidi.get_box_info(msg, m_sync_printer_ip, m_sync_printer_api_key);
|
||||||
m_plater->current_box_info = filament_info;
|
m_plater->current_box_info = filament_info;
|
||||||
qidi.get_color_filament_str(msg, filament_info, m_sync_printer_ip);
|
qidi.get_color_filament_str(msg, filament_info, m_sync_printer_ip, m_sync_printer_api_key);
|
||||||
generate_filament_id(filament_info);
|
generate_filament_id(filament_info);
|
||||||
syn_box_info = filament_info;
|
syn_box_info = filament_info;
|
||||||
update_filament_info(filament_info);
|
update_filament_info(filament_info);
|
||||||
@@ -260,6 +269,7 @@ void GetBoxInfoDialog::update_filament_info(GUI::Box_info& machine_filament_info
|
|||||||
m_plater->box_msg.box_list_preset_name = preset_name_box;
|
m_plater->box_msg.box_list_preset_name = preset_name_box;
|
||||||
|
|
||||||
m_plater->box_msg.box_list_printer_ip = m_sync_printer_ip;
|
m_plater->box_msg.box_list_printer_ip = m_sync_printer_ip;
|
||||||
|
m_plater->box_msg.box_list_printer_api_key = m_sync_printer_api_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetBoxInfoDialog::cancel(wxCommandEvent &event)
|
void GetBoxInfoDialog::cancel(wxCommandEvent &event)
|
||||||
@@ -362,4 +372,4 @@ void GetBoxInfoDialog::load_box_list(){
|
|||||||
wxGetApp().preset_bundle->filament_box_list = filament_box_list;
|
wxGetApp().preset_bundle->filament_box_list = filament_box_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
}} // namespace Slic3r
|
}} // namespace Slic3r
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ public:
|
|||||||
GetBoxInfoDialog(Plater* plater = nullptr);
|
GetBoxInfoDialog(Plater* plater = nullptr);
|
||||||
~GetBoxInfoDialog();
|
~GetBoxInfoDialog();
|
||||||
void synchronization(wxCommandEvent &event);
|
void synchronization(wxCommandEvent &event);
|
||||||
void synchronize_by_ip(std::string ip);
|
|
||||||
|
//y28
|
||||||
|
void synchronize_by_ip(std::string ip, std::string api_key);
|
||||||
|
|
||||||
void cancel(wxCommandEvent &event);
|
void cancel(wxCommandEvent &event);
|
||||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||||
void init_printer_combox();
|
void init_printer_combox();
|
||||||
@@ -37,6 +40,8 @@ public:
|
|||||||
void load_box_list();
|
void load_box_list();
|
||||||
|
|
||||||
std::vector<std::string> m_printer_ip;
|
std::vector<std::string> m_printer_ip;
|
||||||
|
//y28
|
||||||
|
std::vector<std::string> m_printer_api_key;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Plater* m_plater{ nullptr };
|
Plater* m_plater{ nullptr };
|
||||||
@@ -52,6 +57,8 @@ private:
|
|||||||
bool m_isNetMode;
|
bool m_isNetMode;
|
||||||
GUI::Box_info syn_box_info;
|
GUI::Box_info syn_box_info;
|
||||||
std::string m_sync_printer_ip;
|
std::string m_sync_printer_ip;
|
||||||
|
//y28
|
||||||
|
std::string m_sync_printer_api_key;
|
||||||
};
|
};
|
||||||
|
|
||||||
}} // namespace Slic3r::GUI
|
}} // namespace Slic3r::GUI
|
||||||
|
|||||||
@@ -137,19 +137,9 @@ void SwitchButton::Rescale()
|
|||||||
}
|
}
|
||||||
memdc.SetTextForeground(text_color.colorForStates(state ^ StateColor::Checked));
|
memdc.SetTextForeground(text_color.colorForStates(state ^ StateColor::Checked));
|
||||||
auto text_y = BS + (thumbSize.y - textSize[0].y) / 2;
|
auto text_y = BS + (thumbSize.y - textSize[0].y) / 2;
|
||||||
#ifdef __APPLE__
|
|
||||||
if (Slic3r::is_mac_version_15()) {
|
|
||||||
text_y -= FromDIP(2);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, text_y});
|
memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, text_y});
|
||||||
memdc.SetTextForeground(text_color2.count() == 0 ? text_color.colorForStates(state) : text_color2.colorForStates(state));
|
memdc.SetTextForeground(text_color2.count() == 0 ? text_color.colorForStates(state) : text_color2.colorForStates(state));
|
||||||
auto text_y_1 = BS + (thumbSize.y - textSize[1].y) / 2;
|
auto text_y_1 = BS + (thumbSize.y - textSize[1].y) / 2;
|
||||||
#ifdef __APPLE__
|
|
||||||
if (Slic3r::is_mac_version_15()) {
|
|
||||||
text_y_1 -= FromDIP(2);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, text_y_1});
|
memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, text_y_1});
|
||||||
memdc.SelectObject(wxNullBitmap);
|
memdc.SelectObject(wxNullBitmap);
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
|
|||||||
Reference in New Issue
Block a user