mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 01:52:11 +00:00
UI fixes / improvements (#12513)
* bbl device selector search box * align file and more menus with its button * fix multiline inputbox border color on windows * fix multiline inputbox border color on windows * preferences: use content width on combobox dropdowns * about: match version text size on macOS * msg dialog improvements * fix canvas menu overlapping with sliced plates toolbar * bbl bind dialog button placement * bbl color picker * Update StepMeshDialog.cpp * drop file dialog * drop dialog revert fonts * revert windows multiline border * Update StepMeshDialog.cpp * update * Flushing Volumes: match style of combobox * fix hyperlink color on canvas notifications * fix possible issues with shared profiles notification
This commit is contained in:
@@ -17,11 +17,11 @@ var LangText = {
|
||||
t15: "Printer",
|
||||
t16: "Filament type",
|
||||
t17: "Vendor",
|
||||
t18: "error",
|
||||
t18: "Error",
|
||||
t19: "At least one filament must be selected.",
|
||||
t20: "Do you want to use default filament ?",
|
||||
t21: "yes",
|
||||
t22: "no",
|
||||
t21: "Yes",
|
||||
t22: "No",
|
||||
t23: "Release note",
|
||||
t24: "Get Started",
|
||||
t25: "Finish",
|
||||
@@ -35,7 +35,7 @@ var LangText = {
|
||||
t33: "Open Project",
|
||||
t34: "hotspot",
|
||||
t35: "Recently opened",
|
||||
t36: "ok",
|
||||
t36: "OK",
|
||||
t37: "At least one printer must be selected.",
|
||||
t38: "Cancel",
|
||||
t39: "Confirm",
|
||||
@@ -107,7 +107,7 @@ var LangText = {
|
||||
t113: "You may change your choice in preference anytime.",
|
||||
t126: "Loading……",
|
||||
orca1: "Edit Project Info",
|
||||
orca2: "no model information",
|
||||
orca2: "No model information",
|
||||
orca3: "Stealth Mode",
|
||||
orca4: "This stops the transmission of data to Bambu's cloud services. Users who don't use BBL machines or use LAN mode only can safely turn on this function.",
|
||||
orca5: "Enable Stealth Mode.",
|
||||
@@ -131,7 +131,7 @@ var LangText = {
|
||||
t15: "Impressora",
|
||||
t16: "Tipus de filament",
|
||||
t17: "Proveïdor",
|
||||
t18: "error",
|
||||
t18: "Error",
|
||||
t19: "S'ha de seleccionar almenys un filament.",
|
||||
t20: "Vols utilitzar el filament per defecte?",
|
||||
t21: "sí",
|
||||
@@ -149,7 +149,7 @@ var LangText = {
|
||||
t33: "Obrir Projecte",
|
||||
t34: "hotspot",
|
||||
t35: "Obert recentment",
|
||||
t36: "d'acord",
|
||||
t36: "D'acord",
|
||||
t37: "S'ha de seleccionar almenys una impressora.",
|
||||
t38: "Cancel·lar",
|
||||
t39: "Confirmar",
|
||||
@@ -220,7 +220,7 @@ var LangText = {
|
||||
t112: "Unir-se al Programa",
|
||||
t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.",
|
||||
orca1: "Editar Informació del Projecte",
|
||||
orca2: "no hi ha informació del model",
|
||||
orca2: "No hi ha informació del model",
|
||||
orca6: "Bambu Cloud",
|
||||
},
|
||||
es_ES: {
|
||||
@@ -241,11 +241,11 @@ var LangText = {
|
||||
t15: "Impresora",
|
||||
t16: "Tipo de filamento",
|
||||
t17: "Fabricante",
|
||||
t18: "error",
|
||||
t18: "Error",
|
||||
t19: "Al menos se debe seleccionar un filamento.",
|
||||
t20: "¿Desea usar el filamento por defecto?",
|
||||
t21: "sí",
|
||||
t22: "no",
|
||||
t21: "Sí",
|
||||
t22: "No",
|
||||
t23: "Notas de la versión",
|
||||
t24: "Comenzar",
|
||||
t25: "Finalizar",
|
||||
@@ -259,7 +259,7 @@ var LangText = {
|
||||
t33: "Abrir proyecto",
|
||||
t34: "punto de acceso",
|
||||
t35: "Abiertos recientemente",
|
||||
t36: "ok",
|
||||
t36: "OK",
|
||||
t37: "Al menos se debe seleccionar una impresora.",
|
||||
t38: "Cancelar",
|
||||
t39: "Confirmar",
|
||||
@@ -355,11 +355,11 @@ var LangText = {
|
||||
t15: "Stampante",
|
||||
t16: "Tipo di filamento",
|
||||
t17: "Produttore",
|
||||
t18: "errore",
|
||||
t18: "Errore",
|
||||
t19: "È necessario selezionare almeno un filamento.",
|
||||
t20: "Vuoi utilizzare il filamento predefinito?",
|
||||
t21: "sì",
|
||||
t22: "no",
|
||||
t21: "Sì",
|
||||
t22: "No",
|
||||
t23: "Note di rilascio",
|
||||
t24: "Inizia",
|
||||
t25: "Fine",
|
||||
@@ -373,7 +373,7 @@ var LangText = {
|
||||
t33: "Apri progetto",
|
||||
t34: "hotspot",
|
||||
t35: "Aperti di recente",
|
||||
t36: "ok",
|
||||
t36: "OK",
|
||||
t37: "È necessario selezionare almeno una stampante.",
|
||||
t38: "Annulla",
|
||||
t39: "Conferma",
|
||||
@@ -444,7 +444,7 @@ var LangText = {
|
||||
t112: "Unisciti al programma",
|
||||
t113: "Puoi modificare la tua scelta in 'Preferenze' in qualsiasi momento.",
|
||||
orca1: "Modifica informazioni progetto",
|
||||
orca2: "nessuna informazione sul modello",
|
||||
orca2: "Nessuna informazione sul modello",
|
||||
orca3: "Modalità invisibile",
|
||||
orca4: "Con questa modalità, la trasmissione dei dati ai servizi cloud di Bambu sarà interrotta. Gli utenti che non utilizzano macchine BBL o che usano solo la modalità LAN possono attivare questa funzione in modo sicuro.",
|
||||
orca5: "Abilita la modalità invisibile.",
|
||||
@@ -551,7 +551,7 @@ var LangText = {
|
||||
t106: "Profilbeschreibung",
|
||||
t126: "Laden……",
|
||||
orca1: "Edit Project Info",
|
||||
orca2: "no model information",
|
||||
orca2: "No model information",
|
||||
orca6: "Bambu Cloud",
|
||||
},
|
||||
cs_CZ: {
|
||||
@@ -655,7 +655,7 @@ var LangText = {
|
||||
t106: "Popis profilu",
|
||||
t126: "Načtení probíhá……",
|
||||
orca1: "Edit Project Info",
|
||||
orca2: "no model information",
|
||||
orca2: "No model information",
|
||||
orca6: "Bambu Cloud",
|
||||
},
|
||||
fr_FR: {
|
||||
@@ -676,11 +676,11 @@ var LangText = {
|
||||
t15: "Imprimante",
|
||||
t16: "Type de filament",
|
||||
t17: "Fournisseur",
|
||||
t18: "erreur",
|
||||
t18: "Erreur",
|
||||
t19: "Au moins un filament doit être sélectionné.",
|
||||
t20: "Voulez-vous utiliser le filament par défaut ?",
|
||||
t21: "oui",
|
||||
t22: "non",
|
||||
t21: "Oui",
|
||||
t22: "Non",
|
||||
t23: "Note de version",
|
||||
t24: "Commencer",
|
||||
t25: "Terminer",
|
||||
@@ -694,7 +694,7 @@ var LangText = {
|
||||
t33: "Ouvrir un Projet",
|
||||
t34: "hotspot",
|
||||
t35: "Récemment ouvert",
|
||||
t36: "ok",
|
||||
t36: "OK",
|
||||
t37: "Au moins une imprimante doit être sélectionnée.",
|
||||
t38: "Annuler",
|
||||
t39: "Confirmer",
|
||||
@@ -762,7 +762,7 @@ var LangText = {
|
||||
t111: "Créer un nouveau filament",
|
||||
t126: "Chargement en cours……",
|
||||
orca1: "Modifier les informations du projet",
|
||||
orca2: "pas d'information sur le modèle",
|
||||
orca2: "Pas d'information sur le modèle",
|
||||
wk1: "Démarrage rapide",
|
||||
wk2: "Cet article présente l'utilisation la plus basique de Orca Slicer. Il guide les utilisateurs pour configurer le logiciel, créer des projets et effectuer la première tâche d'impression étape par étape.",
|
||||
wk3: "Workflow basé sur des projets",
|
||||
@@ -1032,11 +1032,11 @@ var LangText = {
|
||||
t15: "Принтер",
|
||||
t16: "Тип материала",
|
||||
t17: "Производитель",
|
||||
t18: "ошибка",
|
||||
t18: "Oшибка",
|
||||
t19: "Должна быть выбрана хотя бы одна пластиковая нить.",
|
||||
t20: "Выбрать пластиковые нити по умолчанию?",
|
||||
t21: "да",
|
||||
t22: "нет",
|
||||
t21: "Да",
|
||||
t22: "Нет",
|
||||
t23: "Информация о версии",
|
||||
t24: "Начать",
|
||||
t25: "Закончить",
|
||||
@@ -1218,7 +1218,7 @@ var LangText = {
|
||||
t94: "장치를 보려면 프린터 연결을 설정하세요.",
|
||||
t126: "로딩 중……",
|
||||
orca1: "Edit Project Info",
|
||||
orca2: "no model information",
|
||||
orca2: "No model information",
|
||||
orca6: "Bambu Cloud",
|
||||
},
|
||||
tr_TR: {
|
||||
@@ -1257,7 +1257,7 @@ var LangText = {
|
||||
t33: "Projeyi Aç",
|
||||
t34: "Erişim noktası",
|
||||
t35: "Yakın zamanda açıldı",
|
||||
t36: "Ok",
|
||||
t36: "OK",
|
||||
t37: "En az bir yazıcı seçilmelidir.",
|
||||
t38: "İptal Et",
|
||||
t39: "Onayla",
|
||||
@@ -1329,7 +1329,7 @@ var LangText = {
|
||||
t113: "Tercihinizi istediğiniz zaman değiştirebilirsiniz.",
|
||||
t126: "Yükleme devam ediyor……",
|
||||
orca1: "Proje Bilgilerini Düzenle",
|
||||
orca2: "model bilgisi yok",
|
||||
orca2: "Model bilgisi yok",
|
||||
orca3: "Gizli Mod",
|
||||
orca4: "Bu, Bambu'nun bulut hizmetlerine veri iletimini durdurur. BBL makinelerini kullanmayan veya yalnızca LAN modunu kullanan kullanıcılar bu işlevi güvenle açabilir.",
|
||||
orca5: "Gizli Modu etkinleştirin.",
|
||||
@@ -1353,11 +1353,11 @@ var LangText = {
|
||||
t15: "Drukarka",
|
||||
t16: "Typ filamentu",
|
||||
t17: "Dostawca",
|
||||
t18: "błąd",
|
||||
t18: "Błąd",
|
||||
t19: "Przynajmniej jeden filament musi być wybrany.",
|
||||
t20: "Czy chcesz użyć domyślnego filamentu?",
|
||||
t21: "tak",
|
||||
t22: "nie",
|
||||
t21: "Tak",
|
||||
t22: "Nie",
|
||||
t23: "Informacje o wydaniu",
|
||||
t24: "Rozpocznij",
|
||||
t25: "Zakończ",
|
||||
@@ -1371,7 +1371,7 @@ var LangText = {
|
||||
t33: "Otwórz Projekt",
|
||||
t34: "hotspot",
|
||||
t35: "Ostatnio otwarte",
|
||||
t36: "ok",
|
||||
t36: "OK",
|
||||
t37: "Przynajmniej jedna drukarka musi być wybrana.",
|
||||
t38: "Anuluj",
|
||||
t39: "Potwierdź",
|
||||
@@ -1443,7 +1443,7 @@ var LangText = {
|
||||
t113: "Możesz zmienić swój wybór w preferencjach w dowolnym momencie.",
|
||||
t126: "Ładowanie trwa……",
|
||||
orca1: "Edytuj informacje o projekcie",
|
||||
orca2: "brak informacji o modelu",
|
||||
orca2: "Brak informacji o modelu",
|
||||
orca3: "Tryb «Niewidzialny»",
|
||||
orca4: "To wyłączy przesyłanie danych do usług chmurowych Bambu. Użytkownicy, którzy nie korzystają z maszyn BBL lub używają tylko trybu LAN, mogą bez obaw włączyć tę opcję.",
|
||||
orca5: "Włącz tryb «Niewidzialny»",
|
||||
@@ -1485,7 +1485,7 @@ var LangText = {
|
||||
t33: "Abrir Projeto",
|
||||
t34: "hotspot",
|
||||
t35: "Aberto Recentemente",
|
||||
t36: "Ok",
|
||||
t36: "OK",
|
||||
t37: "Pelo menos uma impressora deve ser selecionada.",
|
||||
t38: "Cancelar",
|
||||
t39: "Confirmar",
|
||||
@@ -1581,11 +1581,11 @@ var LangText = {
|
||||
t15: "Spausdintuvas",
|
||||
t16: "Gijos tipas",
|
||||
t17: "Gamintojas",
|
||||
t18: "klaida",
|
||||
t18: "Klaida",
|
||||
t19: "Turi būti pasirinkta bent viena gija.",
|
||||
t20: "Ar norite naudoti numatytąją giją?",
|
||||
t21: "taip",
|
||||
t22: "ne",
|
||||
t21: "Taip",
|
||||
t22: "Ne",
|
||||
t23: "Išleidimo pastabos",
|
||||
t24: "Pradėti",
|
||||
t25: "Pabaigti",
|
||||
@@ -1599,7 +1599,7 @@ var LangText = {
|
||||
t33: "Atverti projektą",
|
||||
t34: "Prieigos taškas",
|
||||
t35: "Neseniai atidaryti",
|
||||
t36: "gerai",
|
||||
t36: "Gerai",
|
||||
t37: "Turi būti pasirinktas bent vienas spausdintuvas.",
|
||||
t38: "Atšaukti",
|
||||
t39: "Patvirtinti",
|
||||
@@ -1670,7 +1670,7 @@ var LangText = {
|
||||
t112: "Prisijungti prie programos",
|
||||
t113: "Savo pasirinkimą galite bet kada pakeisti.",
|
||||
orca1: "Redaguoti projekto informaciją",
|
||||
orca2: "nėra informacijos apie modelį",
|
||||
orca2: "Nėra informacijos apie modelį",
|
||||
orca3: "Slaptas režimas",
|
||||
orca4: "Tai sustabdo duomenų perdavimą į Bambu debesijos paslaugas. Vartotojai, kurie nenaudoja BBL mašinų arba naudoja tik LAN režimą, gali drąsiai įjungti šią funkciją.",
|
||||
orca5: "Įjungti slaptą režimą.",
|
||||
|
||||
@@ -148,29 +148,6 @@
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
select {
|
||||
padding: 6px 9px;
|
||||
border: 1px solid #dbdbdb;
|
||||
border-radius: 3px;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
appearance: auto;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
select option {
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
select:hover,
|
||||
select:focus {
|
||||
outline: none;
|
||||
border-color: #26A69A;
|
||||
background-color: #edfaf2;
|
||||
}
|
||||
|
||||
.button-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@@ -243,11 +220,6 @@
|
||||
position: sticky;
|
||||
z-index: 11;
|
||||
}
|
||||
body.dark-mode select {
|
||||
background-color: #2d2d31;
|
||||
color: white;
|
||||
border-color: #4c4c55;
|
||||
}
|
||||
|
||||
body.dark-mode .warning-text {
|
||||
color: #f44336;
|
||||
@@ -281,13 +253,16 @@
|
||||
>
|
||||
Re-Calculate
|
||||
</div>
|
||||
<select
|
||||
id="extruders"
|
||||
onchange="handleExtruderSelect(document.getElementById('extruders').value)"
|
||||
>
|
||||
<option value="left" id="extruder_label_0">Left Nozzle</option>
|
||||
<option value="right" id="extruder_label_1">Right Nozzle</option>
|
||||
</select>
|
||||
<div class="ComboBox">
|
||||
<div class="arrow-icon"></div>
|
||||
<select
|
||||
id="extruders"
|
||||
onchange="handleExtruderSelect(document.getElementById('extruders').value)"
|
||||
>
|
||||
<option value="left" id="extruder_label_0">Left Nozzle</option>
|
||||
<option value="right" id="extruder_label_1">Right Nozzle</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="scroll-container">
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
<div id="EmptyArea">
|
||||
<div><img src="img/null.png"></div>
|
||||
<div class="Text_Title Text_Bold trans" tid='orca2'>no model information</div>
|
||||
<div class="Text_Title Text_Bold trans" tid='orca2'>No model information</div>
|
||||
<div id="AddModelInfoBtn" class="ButtonStyleConfirm ButtonTypeWindow trans" tid='orca1' onClick="OnClickEditProjectInfo()">Edit Project Info</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -380,4 +380,5 @@ body
|
||||
#AddModelInfoBtn
|
||||
{
|
||||
margin-top: 20px;
|
||||
margin-right:0;
|
||||
}
|
||||
@@ -248,12 +248,7 @@ AboutDialog::AboutDialog()
|
||||
wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, wxString::Format("Build %s", std::string(GIT_COMMIT_HASH)), wxDefaultPosition, wxDefaultSize);
|
||||
credits_string->SetFont(_build_string_font);
|
||||
wxFont version_font = GetFont();
|
||||
#ifdef __WXMSW__
|
||||
version_font.SetPointSize(version_font.GetPointSize()-1);
|
||||
#else
|
||||
version_font.SetPointSize(11);
|
||||
#endif
|
||||
version_font.SetPointSize(20);
|
||||
version_font = version_font.Scaled(1.85f); // SetPointSize(20) not works on macOS because it uses a 72 PPI reference
|
||||
version->SetFont(version_font);
|
||||
version->SetForegroundColour(wxColour("#949494"));
|
||||
credits_string->SetForegroundColour(wxColour("#949494"));
|
||||
|
||||
@@ -653,7 +653,8 @@ void BBLTopbar::OnFileToolItem(wxAuiToolBarEvent& evt)
|
||||
tb->SetToolSticky(evt.GetId(), true);
|
||||
|
||||
if (!m_skip_popup_file_menu) {
|
||||
GetParent()->PopupMenu(m_file_menu, wxPoint(FromDIP(1), this->GetSize().GetHeight() - 2));
|
||||
auto rec = this->GetToolRect(ID_TOP_FILE_MENU);
|
||||
GetParent()->PopupMenu(m_file_menu, wxPoint(rec.GetLeft(), this->GetSize().GetHeight() - 2));
|
||||
}
|
||||
else {
|
||||
m_skip_popup_file_menu = false;
|
||||
@@ -670,7 +671,8 @@ void BBLTopbar::OnDropdownToolItem(wxAuiToolBarEvent& evt)
|
||||
tb->SetToolSticky(evt.GetId(), true);
|
||||
|
||||
if (!m_skip_popup_dropdown_menu) {
|
||||
GetParent()->PopupMenu(&m_top_menu, wxPoint(FromDIP(1), this->GetSize().GetHeight() - 2));
|
||||
auto rec = this->GetToolRect(ID_TOP_DROPDOWN_MENU);
|
||||
GetParent()->PopupMenu(&m_top_menu, wxPoint(rec.GetLeft(), this->GetSize().GetHeight() - 2));
|
||||
}
|
||||
else {
|
||||
m_skip_popup_dropdown_menu = false;
|
||||
|
||||
@@ -151,6 +151,7 @@ PingCodeBindDialog::PingCodeBindDialog(Plater* plater /*= nullptr*/)
|
||||
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(5));
|
||||
sizer_request->Add(ping_code_input, 0, wxLEFT, FromDIP(10));
|
||||
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(10));
|
||||
sizer_request->AddStretchSpacer();
|
||||
sizer_request->Add(m_sizer_button, 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM, ButtonProps::ChoiceButtonGap());
|
||||
request_bind_panel->SetSizer(sizer_request);
|
||||
request_bind_panel->Layout();
|
||||
|
||||
@@ -73,7 +73,7 @@ FilamentPickerDialog::FilamentPickerDialog(wxWindow *parent, const wxString& fil
|
||||
wxString color_name = m_color_query->GetFilaColorName(fila_id, fila_color);
|
||||
m_cur_color_name = new wxString(color_name);
|
||||
|
||||
wxBoxSizer *container_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxBoxSizer *container_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer *main_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
// Preview panel (always present)
|
||||
@@ -94,16 +94,16 @@ FilamentPickerDialog::FilamentPickerDialog(wxWindow *parent, const wxString& fil
|
||||
|
||||
// "More colours" button (always present)
|
||||
CreateMoreInfoButton();
|
||||
main_sizer->Add(m_more_btn, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(8));
|
||||
main_sizer->AddSpacer(FromDIP(8));
|
||||
main_sizer->Add(m_more_btn, 0, wxEXPAND | wxTOP, FromDIP(8));
|
||||
//main_sizer->AddSpacer(FromDIP(8));
|
||||
|
||||
// OK / Cancel buttons
|
||||
auto dlg_btns = new DialogButtons(this, {"OK", "Cancel"});
|
||||
m_ok_btn = dlg_btns->GetOK();
|
||||
m_cancel_btn = dlg_btns->GetCANCEL();
|
||||
|
||||
main_sizer->Add(dlg_btns, 0, wxEXPAND);
|
||||
container_sizer->Add(main_sizer, 1, wxEXPAND | wxALL, FromDIP(16));
|
||||
container_sizer->Add(main_sizer, 1, wxEXPAND | wxALL, FromDIP(10));
|
||||
container_sizer->Add(dlg_btns, 0, wxEXPAND);
|
||||
|
||||
SetSizer(container_sizer);
|
||||
Layout();
|
||||
@@ -533,17 +533,7 @@ void FilamentPickerDialog::UpdateButtonStates(wxBitmapButton* selected_btn)
|
||||
void FilamentPickerDialog::CreateMoreInfoButton()
|
||||
{
|
||||
m_more_btn = new Button(this, "+ " + _L("More Colors"));
|
||||
m_more_btn->SetMinSize(wxSize(-1, FromDIP(36)));
|
||||
|
||||
StateColor btn_bg(
|
||||
std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(248, 248, 248), StateColor::Normal)
|
||||
);
|
||||
|
||||
|
||||
m_more_btn->SetBackgroundColor(btn_bg);
|
||||
m_more_btn->SetBorderStyle(wxPENSTYLE_SHORT_DASH);
|
||||
m_more_btn->SetCornerRadius(FromDIP(0));
|
||||
m_more_btn->SetStyle(ButtonStyle::Regular, ButtonType::Expanded);
|
||||
}
|
||||
|
||||
wxColourData FilamentPickerDialog::GetSingleColorData()
|
||||
|
||||
@@ -8179,6 +8179,9 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
|
||||
if (wxGetApp().show_3d_navigator()) {
|
||||
window_height_max -= (128 * f_scale + 5);
|
||||
}
|
||||
else { // ORCA spacing for canvas menu
|
||||
window_height_max -= (96 * f_scale + 5);
|
||||
}
|
||||
|
||||
// ORCA simplify and correct window size and margin calculations and get values from style
|
||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||
|
||||
@@ -58,7 +58,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he
|
||||
main_sizer->Add(topsizer, 1, wxEXPAND);
|
||||
|
||||
m_dsa_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
btn_sizer->Add(0, 0, 0, wxLEFT, FromDIP(120));
|
||||
btn_sizer->Add(0, 0, 0, wxLEFT, FromDIP(LOGO_SPACING + 64 + LOGO_GAP));
|
||||
btn_sizer->Add(m_dsa_sizer, 0, wxEXPAND);
|
||||
btn_sizer->AddStretchSpacer();
|
||||
main_sizer->Add(btn_sizer, 0, wxBOTTOM | wxRIGHT | wxEXPAND | wxTOP, FromDIP(10));
|
||||
@@ -76,7 +76,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he
|
||||
void MsgDialog::show_dsa_button(wxString const &title)
|
||||
{
|
||||
m_checkbox_dsa = new CheckBox(this);
|
||||
m_dsa_sizer->Add(m_checkbox_dsa, 0, wxALL | wxALIGN_CENTER, FromDIP(2));
|
||||
m_dsa_sizer->Add(m_checkbox_dsa, 0, wxALIGN_CENTER);
|
||||
m_checkbox_dsa->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
|
||||
auto event = wxCommandEvent(EVT_CHECKBOX_CHANGE);
|
||||
event.SetInt(m_checkbox_dsa->GetValue()?1:0);
|
||||
@@ -86,7 +86,17 @@ void MsgDialog::show_dsa_button(wxString const &title)
|
||||
});
|
||||
|
||||
auto m_text_dsa = new wxStaticText(this, wxID_ANY, title.IsEmpty() ? _L("Don't show again") : title, wxDefaultPosition, wxDefaultSize, 0);
|
||||
auto on_toggle = [this]() {
|
||||
m_checkbox_dsa->SetValue(!m_checkbox_dsa->GetValue());
|
||||
wxCommandEvent ev(wxEVT_TOGGLEBUTTON, m_checkbox_dsa->GetId());
|
||||
ev.SetEventObject(m_checkbox_dsa);
|
||||
m_checkbox_dsa->GetEventHandler()->ProcessEvent(ev);
|
||||
};
|
||||
m_text_dsa->Bind(wxEVT_LEFT_DOWN, [on_toggle](wxMouseEvent& e) {if(!e.LeftDClick()) on_toggle();});
|
||||
m_text_dsa->Bind(wxEVT_LEFT_DCLICK, [on_toggle](wxMouseEvent& e) {on_toggle();});
|
||||
|
||||
m_dsa_sizer->Add(m_text_dsa, 0, wxALL | wxALIGN_CENTER, FromDIP(2));
|
||||
m_dsa_sizer->AddSpacer(FromDIP(10)); // spacing after checkbox
|
||||
m_text_dsa->SetFont(::Label::Body_13);
|
||||
m_text_dsa->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#323A3D")));
|
||||
btn_sizer->Layout();
|
||||
@@ -169,7 +179,7 @@ Button* MsgDialog::add_button(wxWindowID btn_id, bool set_focus /*= false*/, con
|
||||
|
||||
if (set_focus)
|
||||
btn->SetFocus();
|
||||
btn_sizer->Add(btn, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, FromDIP(ButtonProps::ChoiceButtonGap()));
|
||||
btn_sizer->Add(btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(ButtonProps::ChoiceButtonGap()));
|
||||
btn->Bind(wxEVT_BUTTON, [this, btn_id](wxCommandEvent&) { EndModal(btn_id); });
|
||||
|
||||
MsgButton *mb = new MsgButton;
|
||||
@@ -289,7 +299,8 @@ static void add_msg_content(wxWindow *parent,
|
||||
}
|
||||
else {
|
||||
wxClientDC dc(parent);
|
||||
wxSize msg_sz = dc.GetMultiLineTextExtent(msg);
|
||||
dc.SetFont(font); // ORCA without this it calculates bigger size
|
||||
wxSize msg_sz = dc.GetMultiLineTextExtent(msg) + parent->FromDIP(wxSize(10,5)); // added extra spacing to prevent wrapping
|
||||
|
||||
page_size = wxSize(std::min(msg_sz.GetX(), info_width), std::min(msg_sz.GetY(), info_width));
|
||||
// Extra line breaks in message dialog
|
||||
@@ -355,7 +366,7 @@ ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &temp_msg, bool monosp
|
||||
add_msg_content(this, content_sizer, msg, monospaced_font);
|
||||
|
||||
// Use a small bitmap with monospaced font, as the error text will not be wrapped.
|
||||
logo->SetBitmap(create_scaled_bitmap("OrcaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/84));
|
||||
logo->SetBitmap(create_scaled_bitmap("OrcaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/64));
|
||||
|
||||
SetMaxSize(MSG_DLG_MAX_SIZE);
|
||||
|
||||
@@ -563,7 +574,7 @@ Newer3mfVersionDialog::Newer3mfVersionDialog(wxWindow *parent, const Semver *fil
|
||||
main_sizer->Add(0, 0, 0, wxTOP, FromDIP(5));
|
||||
|
||||
wxBoxSizer * content_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxStaticBitmap *info_bitmap = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("info", nullptr, 60), wxDefaultPosition, wxSize(FromDIP(70), FromDIP(70)), 0);
|
||||
wxStaticBitmap *info_bitmap = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("info", nullptr, 64), wxDefaultPosition, wxSize(FromDIP(70), FromDIP(70)), 0);
|
||||
wxBoxSizer * msg_sizer = get_msg_sizer();
|
||||
content_sizer->Add(info_bitmap, 0, wxEXPAND | wxALL, FromDIP(5));
|
||||
content_sizer->Add(msg_sizer, 0, wxEXPAND | wxALL, FromDIP(5));
|
||||
|
||||
@@ -71,7 +71,7 @@ struct MsgDialog : DPIDialog
|
||||
protected:
|
||||
enum {
|
||||
BORDER = 20,
|
||||
LOGO_SPACING = 35,
|
||||
LOGO_SPACING = 25,
|
||||
LOGO_GAP = 20,
|
||||
CONTENT_WIDTH = 242,
|
||||
CONTENT_MAX_HEIGHT = 60,//TO
|
||||
|
||||
@@ -239,6 +239,8 @@ void NotificationManager::PopNotification::use_bbl_theme()
|
||||
m_WindowBkgColor = m_is_dark ? ImVec4(45 / 255.f, 45 / 255.f, 49 / 255.f, 1.f) : ImVec4(1, 1, 1, 1);
|
||||
m_TextColor = m_is_dark ? ImVec4(224 / 255.f, 224 / 255.f, 224 / 255.f, 1.f) : ImVec4(.2f, .2f, .2f, 1.0f);
|
||||
m_HyperTextColor = m_is_dark ? ImVec4(0, 0.588, 0.533, 1) : ImVec4(0, 0.588, 0.533, 1);
|
||||
m_HyperTextColorHover = m_is_dark ? ImVec4(38.f / 255.f, 166.f / 255.f, 154.f / 255.f, 1) : ImVec4(0.f, 129.f / 255.f, 114.f / 255.f, 1); //#26A69A / #008172;
|
||||
|
||||
m_is_dark ? push_style_color(ImGuiCol_Border, {62 / 255.f, 62 / 255.f, 69 / 255.f, 1.f}, true, m_current_fade_opacity) : push_style_color(ImGuiCol_Border, m_CurrentColor, true, m_current_fade_opacity);
|
||||
push_style_color(ImGuiCol_WindowBg, m_WindowBkgColor, true, m_current_fade_opacity);
|
||||
push_style_color(ImGuiCol_Text, m_TextColor, true, m_current_fade_opacity);
|
||||
@@ -759,11 +761,17 @@ void NotificationManager::PopNotification::render_hypertext(ImGuiWrapper& imgui,
|
||||
HyperColor = ImVec4(135.f / 255.f, 43 / 255.f, 43 / 255.f, 1);
|
||||
if (ImGui::IsItemHovered(ImGuiHoveredFlags_RectOnly))
|
||||
{
|
||||
HyperColor.y += 0.1f;
|
||||
if (m_data.level == NotificationLevel::SeriousWarningNotificationLevel || m_data.level == NotificationLevel::SeriousWarningNotificationLevel)
|
||||
HyperColor.x += 0.2f;
|
||||
if (m_data.level == NotificationLevel::SeriousWarningNotificationLevel){
|
||||
HyperColor.y += 0.1f;
|
||||
HyperColor.x += 0.2f;
|
||||
}
|
||||
else if(m_data.level == NotificationLevel::ErrorNotificationLevel){
|
||||
HyperColor.y += 0.1f;
|
||||
}
|
||||
else {
|
||||
HyperColor = m_HyperTextColorHover;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//text
|
||||
push_style_color(ImGuiCol_Text, HyperColor, m_state == EState::FadingOut, m_current_fade_opacity);
|
||||
@@ -2255,8 +2263,9 @@ void NotificationManager::push_import_finished_notification(const std::string& p
|
||||
void NotificationManager::SharedProfilesNotification::init()
|
||||
{
|
||||
PopNotification::init();
|
||||
// Add one extra line for the hyperlink row ("Browse shared profiles" + "Don't show again")
|
||||
m_lines_count++;
|
||||
// Add two extra lines for the hyperlink row ("Browse shared profiles" + "Don't show again")
|
||||
// and 1 more additional line for adding spacing between them to make it easier to click
|
||||
m_lines_count = m_lines_count + 2; // ORCA
|
||||
}
|
||||
|
||||
void NotificationManager::SharedProfilesNotification::render_text(ImGuiWrapper& imgui,
|
||||
@@ -2283,18 +2292,18 @@ void NotificationManager::SharedProfilesNotification::render_text(ImGuiWrapper&
|
||||
}
|
||||
|
||||
// Render "Browse shared profiles" hyperlink on the next line
|
||||
float hyper_y = starting_y + m_endlines.size() * shift_y;
|
||||
float hyper_y = starting_y + m_endlines.size() * shift_y - m_line_height / 2.f;
|
||||
render_hypertext(imgui, x_offset, hyper_y, m_hypertext);
|
||||
|
||||
// Render "Don't show again" hyperlink after the browse link
|
||||
{
|
||||
float dont_show_x = x_offset + ImGui::CalcTextSize((m_hypertext + " ").c_str()).x;
|
||||
float dont_show_y = hyper_y + ImGui::CalcTextSize((m_hypertext + " ").c_str()).y + m_line_height / 2.f;
|
||||
std::string dont_show_text = _u8L("Don't show again");
|
||||
ImVec2 part_size = ImGui::CalcTextSize(dont_show_text.c_str());
|
||||
|
||||
// Invisible button
|
||||
ImGui::SetCursorPosX(dont_show_x - 4);
|
||||
ImGui::SetCursorPosY(hyper_y - 5);
|
||||
ImGui::SetCursorPosX(x_offset); // ORCA render on new line to prevent long translations from being cut off
|
||||
ImGui::SetCursorPosY(dont_show_y);
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(.0f, .0f, .0f, .0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(.0f, .0f, .0f, .0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(.0f, .0f, .0f, .0f));
|
||||
@@ -2308,12 +2317,12 @@ void NotificationManager::SharedProfilesNotification::render_text(ImGuiWrapper&
|
||||
// Hover color
|
||||
ImVec4 color = m_HyperTextColor;
|
||||
if (ImGui::IsItemHovered(ImGuiHoveredFlags_RectOnly))
|
||||
color.y += 0.1f;
|
||||
color = m_HyperTextColorHover;
|
||||
|
||||
// Text
|
||||
push_style_color(ImGuiCol_Text, color, m_state == EState::FadingOut, m_current_fade_opacity);
|
||||
ImGui::SetCursorPosX(dont_show_x);
|
||||
ImGui::SetCursorPosY(hyper_y);
|
||||
ImGui::SetCursorPosX(x_offset);
|
||||
ImGui::SetCursorPosY(dont_show_y);
|
||||
imgui.text(dont_show_text.c_str());
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
@@ -2354,7 +2363,7 @@ void NotificationManager::SharedProfilesNotification::render_hypertext(ImGuiWrap
|
||||
// Hover color
|
||||
ImVec4 HyperColor = m_HyperTextColor;
|
||||
if (ImGui::IsItemHovered(ImGuiHoveredFlags_RectOnly))
|
||||
HyperColor.y += 0.1f;
|
||||
HyperColor = m_HyperTextColorHover;
|
||||
|
||||
// Text
|
||||
push_style_color(ImGuiCol_Text, HyperColor, m_state == EState::FadingOut, m_current_fade_opacity);
|
||||
|
||||
@@ -543,6 +543,7 @@ private:
|
||||
ImVec4 m_TextColor;
|
||||
|
||||
ImVec4 m_HyperTextColor;
|
||||
ImVec4 m_HyperTextColorHover;
|
||||
|
||||
ImVec4 m_ErrorColor;
|
||||
ImVec4 m_WarnColor;
|
||||
|
||||
@@ -13941,7 +13941,6 @@ public:
|
||||
wxPanel * m_top_line;
|
||||
wxStaticText *m_fname_title;
|
||||
wxStaticText *m_fname_f;
|
||||
wxStaticText *m_fname_s;
|
||||
StaticBox * m_panel_select;
|
||||
|
||||
void on_select_ok(wxCommandEvent &event);
|
||||
@@ -13951,7 +13950,6 @@ public:
|
||||
void set_action(int index) { m_action = index; }
|
||||
|
||||
wxBoxSizer *create_remember_checkbox(wxString title, wxWindow* parent, wxString tooltip);
|
||||
wxBoxSizer *create_item_radiobox(wxString title, wxWindow *parent, int select_id, int groupid);
|
||||
|
||||
protected:
|
||||
void on_dpi_changed(const wxRect &suggested_rect) override;
|
||||
@@ -13969,10 +13967,6 @@ ProjectDropDialog::ProjectDropDialog(const std::string &filename)
|
||||
// def setting
|
||||
SetBackgroundColour(m_def_color);
|
||||
|
||||
// icon
|
||||
std::string icon_path = (boost::format("%1%/images/OrcaSlicerTitle.ico") % resources_dir()).str();
|
||||
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
|
||||
|
||||
wxBoxSizer *m_sizer_main = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
m_top_line = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||
@@ -13980,37 +13974,23 @@ ProjectDropDialog::ProjectDropDialog(const std::string &filename)
|
||||
|
||||
m_sizer_main->Add(m_top_line, 0, wxEXPAND, 0);
|
||||
|
||||
m_sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, 20);
|
||||
|
||||
wxBoxSizer *m_sizer_name = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer *m_sizer_fline = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_sizer_main->AddSpacer(FromDIP(15));
|
||||
|
||||
// ORCA use file name on new line to create room for longer names
|
||||
m_fname_title = new wxStaticText(this, wxID_ANY, _L("Please select an action"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_fname_title->Wrap(-1);
|
||||
m_fname_title->SetFont(::Label::Body_14);
|
||||
m_fname_title->SetForegroundColour(wxColour(107, 107, 107));
|
||||
m_fname_title->SetBackgroundColour(wxColour(255, 255, 255));
|
||||
m_fname_title->SetForegroundColour(wxColour("#363636"));
|
||||
|
||||
m_sizer_fline->Add(m_fname_title, 0, wxALL, 0);
|
||||
m_sizer_fline->Add(0, 0, 0, wxEXPAND | wxLEFT, 5);
|
||||
|
||||
m_fname_f = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_fname_f = new wxStaticText(this, wxID_ANY, filename);
|
||||
m_fname_f->SetFont(::Label::Head_14);
|
||||
m_fname_f->Wrap(-1);
|
||||
m_fname_f->SetForegroundColour(wxColour(38, 46, 48));
|
||||
m_fname_f->SetMaxSize(wxSize(FromDIP(300),-1));
|
||||
m_fname_f->Wrap(FromDIP(300));
|
||||
m_fname_f->SetForegroundColour(wxColour("#363636"));
|
||||
|
||||
m_sizer_fline->Add(m_fname_f, 1, wxALL, 0);
|
||||
|
||||
m_sizer_name->Add(m_sizer_fline, 1, wxEXPAND, 0);
|
||||
|
||||
m_fname_s = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_fname_s->SetFont(::Label::Head_14);
|
||||
m_fname_s->Wrap(-1);
|
||||
m_fname_s->SetForegroundColour(wxColour(38, 46, 48));
|
||||
|
||||
m_sizer_name->Add(m_fname_s, 1, wxALL, 0);
|
||||
|
||||
m_sizer_main->Add(m_sizer_name, 1, wxEXPAND | wxLEFT | wxRIGHT, 20);
|
||||
m_sizer_main->Add(m_fname_title, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
||||
m_sizer_main->AddSpacer(FromDIP(10));
|
||||
m_sizer_main->Add(m_fname_f , 1, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
||||
m_sizer_main->AddSpacer(FromDIP(10));
|
||||
|
||||
auto radio_group = new RadioGroup(this, {
|
||||
_L("Open as project"), // 0
|
||||
@@ -14022,9 +14002,9 @@ ProjectDropDialog::ProjectDropDialog(const std::string &filename)
|
||||
set_action(radio_group->GetSelection() + 1);
|
||||
});
|
||||
|
||||
m_sizer_main->Add(radio_group, 0, wxEXPAND | wxLEFT | wxRIGHT, 20);
|
||||
m_sizer_main->Add(radio_group, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
||||
|
||||
m_sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, 10);
|
||||
m_sizer_main->AddSpacer(FromDIP(10));
|
||||
|
||||
// wxBoxSizer *m_sizer_bottom = new wxBoxSizer(wxHORIZONTAL);
|
||||
// Orca: hide the "Don't show again" checkbox, people keeps accidentally checked this then forgot
|
||||
@@ -14048,29 +14028,6 @@ ProjectDropDialog::ProjectDropDialog(const std::string &filename)
|
||||
Fit();
|
||||
Centre(wxBOTH);
|
||||
|
||||
|
||||
auto limit_width = m_fname_f->GetSize().GetWidth() - 2;
|
||||
auto current_width = 0;
|
||||
auto cut_index = 0;
|
||||
auto fstring = wxString("");
|
||||
auto bstring = wxString("");
|
||||
|
||||
//auto file_name = from_u8(filename.c_str());
|
||||
auto file_name = wxString(filename);
|
||||
for (int x = 0; x < file_name.length(); x++) {
|
||||
current_width += m_fname_s->GetTextExtent(file_name[x]).GetWidth();
|
||||
cut_index = x;
|
||||
|
||||
if (current_width > limit_width) {
|
||||
bstring += file_name[x];
|
||||
} else {
|
||||
fstring += file_name[x];
|
||||
}
|
||||
}
|
||||
|
||||
m_fname_f->SetLabel(fstring);
|
||||
m_fname_s->SetLabel(bstring);
|
||||
|
||||
wxGetApp().UpdateDlgDarkUI(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,7 @@ std::tuple<wxBoxSizer*, ComboBox*> PreferencesDialog::create_item_combobox_base(
|
||||
auto combobox = new ::ComboBox(m_parent, wxID_ANY, wxEmptyString, wxDefaultPosition, DESIGN_LARGE_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY);
|
||||
combobox->SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetUseContentWidth(true);
|
||||
|
||||
std::vector<wxString>::iterator iter;
|
||||
for (iter = vlist.begin(); iter != vlist.end(); iter++) {
|
||||
@@ -190,6 +191,7 @@ wxBoxSizer *PreferencesDialog::create_item_language_combobox(wxString title, wxS
|
||||
auto combobox = new ::ComboBox(m_parent, wxID_ANY, wxEmptyString, wxDefaultPosition, DESIGN_LARGE_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY);
|
||||
combobox->SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetUseContentWidth(true);
|
||||
auto language = app_config->get(param);
|
||||
m_current_language_selected = -1;
|
||||
std::vector<wxString>::iterator iter;
|
||||
@@ -354,6 +356,7 @@ wxBoxSizer *PreferencesDialog::create_item_region_combobox(wxString title, wxStr
|
||||
auto combobox = new ::ComboBox(m_parent, wxID_ANY, wxEmptyString, wxDefaultPosition, DESIGN_LARGE_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY);
|
||||
combobox->SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetUseContentWidth(true);
|
||||
m_sizer_combox->Add(combobox, 0, wxALIGN_CENTER | wxLEFT, FromDIP(5));
|
||||
|
||||
std::vector<wxString>::iterator iter;
|
||||
@@ -433,6 +436,7 @@ wxBoxSizer *PreferencesDialog::create_item_loglevel_combobox(wxString title, wxS
|
||||
auto combobox = new ::ComboBox(m_parent, wxID_ANY, wxEmptyString, wxDefaultPosition, DESIGN_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY);
|
||||
combobox->SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetFont(::Label::Body_14);
|
||||
combobox->GetDropDown().SetUseContentWidth(true);
|
||||
|
||||
std::vector<wxString>::iterator iter;
|
||||
for (iter = vlist.begin(); iter != vlist.end(); iter++) { combobox->Append(*iter); }
|
||||
|
||||
@@ -335,12 +335,12 @@ SelectMachinePopup::SelectMachinePopup(wxWindow *parent)
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
m_sizer_search_bar = new wxBoxSizer(wxVERTICAL);
|
||||
m_search_bar = new wxSearchCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_search_bar = new wxSearchCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxNO_BORDER );
|
||||
m_search_bar->SetDescriptiveText(_L("Search"));
|
||||
m_search_bar->ShowSearchButton( true );
|
||||
m_search_bar->ShowCancelButton( false );
|
||||
m_sizer_search_bar->Add( m_search_bar, 1, wxALL| wxEXPAND, 1 );
|
||||
m_sizer_main->Add(m_sizer_search_bar, 0, wxALL | wxEXPAND, FromDIP(2));
|
||||
m_sizer_main->Add(m_sizer_search_bar, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(1));
|
||||
m_search_bar->Bind( wxEVT_COMMAND_TEXT_UPDATED, &SelectMachinePopup::update_machine_list, this );
|
||||
#endif
|
||||
auto own_title = create_title_panel(_L("My Device"));
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "Widgets/Button.hpp"
|
||||
#include "Widgets/TextInput.hpp"
|
||||
#include "Widgets/DialogButtons.hpp"
|
||||
#include "Widgets/RoundedRectangle.hpp"
|
||||
#include <chrono>
|
||||
|
||||
using namespace Slic3r;
|
||||
@@ -19,9 +20,9 @@ using namespace Slic3r::GUI;
|
||||
static int _scale(const int val) { return val * Slic3r::GUI::wxGetApp().em_unit() / 10; }
|
||||
static int _ITEM_WIDTH() { return _scale(30); }
|
||||
#define MIN_DIALOG_WIDTH FromDIP(400)
|
||||
#define SLIDER_WIDTH FromDIP(200)
|
||||
#define SLIDER_WIDTH FromDIP(220)
|
||||
#define SLIDER_HEIGHT FromDIP(25)
|
||||
#define TEXT_CTRL_WIDTH FromDIP(70)
|
||||
#define TEXT_CTRL_WIDTH FromDIP(100)
|
||||
#define BUTTON_SIZE wxSize(FromDIP(58), FromDIP(24))
|
||||
#define BUTTON_BORDER FromDIP(int(400 - 58 * 2) / 8)
|
||||
#define SLIDER_SCALE(val) ((val) / 0.001)
|
||||
@@ -29,7 +30,7 @@ static int _ITEM_WIDTH() { return _scale(30); }
|
||||
#define SLIDER_SCALE_10(val) ((val) / 0.01)
|
||||
#define SLIDER_UNSCALE_10(val) ((val) * 0.01)
|
||||
#define LEFT_RIGHT_PADING FromDIP(20)
|
||||
#define FONT_COLOR wxColour("#6B6B6B")
|
||||
#define FONT_COLOR wxColour("#262E30")
|
||||
|
||||
wxDEFINE_EVENT(wxEVT_THREAD_DONE, wxCommandEvent);
|
||||
|
||||
@@ -85,9 +86,9 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
|
||||
wxBoxSizer* bSizer = new wxBoxSizer(wxVERTICAL);
|
||||
bSizer->SetMinSize(wxSize(MIN_DIALOG_WIDTH, -1));
|
||||
//bSizer->SetMinSize(wxSize(MIN_DIALOG_WIDTH, -1));
|
||||
|
||||
auto image_bitmap = create_scaled_bitmap("step_mesh_info", this, FromDIP(120));
|
||||
//auto image_bitmap = create_scaled_bitmap("step_mesh_info", this, FromDIP(120));
|
||||
|
||||
// wxPanel* overlay_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, image_bitmap.GetSize(), wxTAB_TRAVERSAL);
|
||||
// overlay_panel->SetBackgroundStyle(wxBG_STYLE_PAINT);
|
||||
@@ -114,23 +115,31 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
|
||||
// bSizer->Add(overlay_panel, 0, wxALIGN_CENTER | wxALL, 10);
|
||||
|
||||
auto tip_frame = new RoundedRectangle(this, StateColor::darkModeColorFor(wxColour("#F1F1F1")), wxDefaultPosition, wxSize(-1,-1), 6, 0);
|
||||
|
||||
wxBoxSizer* tips_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
wxStaticText* info = new wxStaticText(this, wxID_ANY, _L("Smaller linear and angular deflections result in higher-quality transformations but increase the processing time."));
|
||||
info->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
wxStaticText* info = new wxStaticText(tip_frame, wxID_ANY, _L("Smaller linear and angular deflections result in higher-quality transformations but increase the processing time."));
|
||||
info->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636")));
|
||||
info->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#F1F1F1")));
|
||||
info->SetFont(::Label::Body_14);
|
||||
info->Wrap(FromDIP(450));
|
||||
|
||||
// ORCA standardized HyperLink
|
||||
HyperLink *tips = new HyperLink(this, _L("Wiki Guide"), "https://www.orcaslicer.com/wiki/import_export#step");
|
||||
tips->SetFont(::Label::Body_12);
|
||||
|
||||
info->Wrap(FromDIP(400));
|
||||
tips_sizer->Add(info, 0, wxALIGN_LEFT);
|
||||
tips_sizer->Add(tips, 0, wxALIGN_LEFT);
|
||||
bSizer->Add(tips_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, LEFT_RIGHT_PADING);
|
||||
HyperLink *tips = new HyperLink(tip_frame, _L("Wiki Guide"), "https://www.orcaslicer.com/wiki/import_export#step");
|
||||
tips->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#F1F1F1")));
|
||||
|
||||
tips_sizer->Add(info, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(10));
|
||||
tips_sizer->Add(tips, 0, wxALL, FromDIP(10));
|
||||
|
||||
tip_frame->SetSizer(tips_sizer);
|
||||
tip_frame->Layout();
|
||||
bSizer->Add(tip_frame, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, LEFT_RIGHT_PADING);
|
||||
|
||||
wxBoxSizer* linear_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
//linear_sizer->SetMinSize(wxSize(MIN_DIALOG_WIDTH, -1));
|
||||
wxStaticText* linear_title = new wxStaticText(this,
|
||||
wxID_ANY, _L("Linear Deflection") + ": ");
|
||||
linear_title->SetFont(::Label::Body_14);
|
||||
linear_title->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
linear_sizer->Add(linear_title, 0, wxALIGN_LEFT);
|
||||
linear_sizer->AddStretchSpacer(1);
|
||||
@@ -142,7 +151,7 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
linear_sizer->Add(linear_slider, 0, wxALIGN_RIGHT | wxLEFT, FromDIP(5));
|
||||
|
||||
auto linear_input = new ::TextInput(this, m_linear_last, wxEmptyString, wxEmptyString, wxDefaultPosition, wxSize(TEXT_CTRL_WIDTH, -1), wxTE_CENTER);
|
||||
linear_input->GetTextCtrl()->SetFont(Label::Body_12);
|
||||
linear_input->GetTextCtrl()->SetFont(Label::Body_14);
|
||||
linear_input->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||
linear_sizer->Add(linear_input, 0, wxALIGN_RIGHT | wxLEFT, FromDIP(5));
|
||||
linear_input->Bind(wxEVT_KILL_FOCUS, ([this, linear_input](wxFocusEvent& e) {
|
||||
@@ -179,11 +188,13 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
e.Skip();
|
||||
}));
|
||||
|
||||
bSizer->Add(linear_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, LEFT_RIGHT_PADING);
|
||||
bSizer->Add(linear_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, LEFT_RIGHT_PADING);
|
||||
bSizer->AddSpacer(FromDIP(5));
|
||||
|
||||
wxBoxSizer* angle_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxStaticText* angle_title = new wxStaticText(this,
|
||||
wxID_ANY, _L("Angle Deflection") + ": ");
|
||||
angle_title->SetFont(::Label::Body_14);
|
||||
angle_title->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
angle_sizer->Add(angle_title, 0, wxALIGN_LEFT);
|
||||
angle_sizer->AddStretchSpacer(1);
|
||||
@@ -195,7 +206,7 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
angle_sizer->Add(angle_slider, 0, wxALIGN_RIGHT | wxLEFT, FromDIP(5));
|
||||
|
||||
auto angle_input = new ::TextInput(this, m_angle_last, wxEmptyString, wxEmptyString, wxDefaultPosition, wxSize(TEXT_CTRL_WIDTH, -1), wxTE_CENTER);
|
||||
angle_input->GetTextCtrl()->SetFont(Label::Body_12);
|
||||
angle_input->GetTextCtrl()->SetFont(Label::Body_14);
|
||||
angle_input->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
|
||||
angle_sizer->Add(angle_input, 0, wxALIGN_RIGHT | wxLEFT, FromDIP(5));
|
||||
angle_input->Bind(wxEVT_KILL_FOCUS, ([this, angle_input](wxFocusEvent& e) {
|
||||
@@ -233,28 +244,32 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line
|
||||
e.Skip();
|
||||
}));
|
||||
|
||||
bSizer->Add(angle_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT, LEFT_RIGHT_PADING);
|
||||
bSizer->Add(angle_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, LEFT_RIGHT_PADING);
|
||||
|
||||
wxBoxSizer* check_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_split_compound_checkbox = new wxCheckBox(this, wxID_ANY, _L("Split compound and compsolid into multiple objects"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_split_compound_checkbox->SetFont(::Label::Body_14);
|
||||
m_split_compound_checkbox->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
m_split_compound_checkbox->SetValue(wxGetApp().app_config->get_bool("is_split_compound"));
|
||||
check_sizer->Add(m_split_compound_checkbox, 0, wxALIGN_LEFT);
|
||||
bSizer->Add(check_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT, LEFT_RIGHT_PADING);
|
||||
bSizer->Add(check_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, LEFT_RIGHT_PADING);
|
||||
|
||||
wxBoxSizer* mesh_face_number_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxStaticText *mesh_face_number_title = new wxStaticText(this, wxID_ANY, _L("Number of triangular facets") + ": ");
|
||||
mesh_face_number_title->SetFont(::Label::Body_14);
|
||||
mesh_face_number_title->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
mesh_face_number_text = new wxStaticText(this, wxID_ANY, "0");
|
||||
mesh_face_number_text->SetFont(::Label::Body_14);
|
||||
mesh_face_number_text->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
mesh_face_number_text->SetMinSize(wxSize(FromDIP(150), -1));
|
||||
mesh_face_number_sizer->Add(mesh_face_number_title, 0, wxALIGN_LEFT);
|
||||
mesh_face_number_sizer->Add(mesh_face_number_text, 0, wxALIGN_LEFT);
|
||||
bSizer->Add(mesh_face_number_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT, LEFT_RIGHT_PADING);
|
||||
bSizer->Add(mesh_face_number_sizer, 0, wxEXPAND | wxALL, LEFT_RIGHT_PADING);
|
||||
|
||||
wxBoxSizer* bSizer_button = new wxBoxSizer(wxHORIZONTAL);
|
||||
bSizer_button->SetMinSize(wxSize(FromDIP(100), -1));
|
||||
m_checkbox = new wxCheckBox(this, wxID_ANY, _L("Don't show again"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_checkbox->SetFont(::Label::Body_14);
|
||||
m_checkbox->SetForegroundColour(StateColor::darkModeColorFor(FONT_COLOR));
|
||||
bSizer_button->Add(m_checkbox, 0, wxALIGN_LEFT | wxLEFT | wxALIGN_CENTER_VERTICAL, LEFT_RIGHT_PADING);
|
||||
bSizer_button->AddStretchSpacer(1);
|
||||
|
||||
Reference in New Issue
Block a user