mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-24 15:13:58 -06:00
Merge branch 'main' into main
This commit is contained in:
commit
04b8ab09a3
39 changed files with 137 additions and 87 deletions
2
deps/OpenCV/OpenCV.cmake
vendored
2
deps/OpenCV/OpenCV.cmake
vendored
|
@ -26,7 +26,7 @@ orcaslicer_add_cmake_project(OpenCV
|
|||
-DBUILD_ZLIB=OFF
|
||||
-DWITH_1394=OFF
|
||||
-DWITH_CUDA=OFF
|
||||
-DWITH_EIGEN=ON
|
||||
-DWITH_EIGEN=OFF
|
||||
${_use_IPP}
|
||||
-DWITH_ITT=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
|
|
19
deps/wxWidgets/wxWidgets.cmake
vendored
19
deps/wxWidgets/wxWidgets.cmake
vendored
|
@ -1,6 +1,3 @@
|
|||
set(_wx_version 3.1.5)
|
||||
set(_wx_git_tag v${_wx_version})
|
||||
|
||||
set(_wx_toolkit "")
|
||||
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
|
||||
|
||||
|
@ -20,26 +17,10 @@ else ()
|
|||
set(_wx_edge "-DwxUSE_WEBVIEW_EDGE=OFF")
|
||||
endif ()
|
||||
|
||||
|
||||
# Note: for anybody wanting to switch to tarball fetching - this won't just work as
|
||||
# git apply expects a git repo. Either git init empty repo, or change patching method.
|
||||
# if (WIN32)
|
||||
# # Windows requires a different tarball because of configured line endings as stated in docs.
|
||||
# set(_wx_tarball_url https://github.com/wxWidgets/wxWidgets/releases/download/${_wx_git_tag}/wxWidgets-${_wx_version}.7z)
|
||||
# set(_wx_tarball_hash 99f5382312e4a4aea444ada07341a72c5d4a69b58d8e76586d4b94ede7f5ef4d)
|
||||
# else()
|
||||
# set(_wx_tarball_url https://github.com/wxWidgets/wxWidgets/releases/download/${_wx_git_tag}/wxWidgets-${_wx_version}.tar.bz2)
|
||||
# set(_wx_tarball_hash d7b3666de33aa5c10ea41bb9405c40326e1aeb74ee725bb88f90f1d50270a224)
|
||||
# endif()
|
||||
|
||||
orcaslicer_add_cmake_project(
|
||||
wxWidgets
|
||||
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
|
||||
# GIT_TAG ${_wx_git_tag}
|
||||
GIT_SHALLOW ON
|
||||
# URL ${_wx_tarball_url}
|
||||
# URL_HASH SHA256=${_wx_tarball_hash}
|
||||
# PATCH_COMMAND ${_patch_cmd}
|
||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} dep_TIFF dep_JPEG
|
||||
CMAKE_ARGS
|
||||
-DwxBUILD_PRECOMP=ON
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
"Creality CR-6 Max 0.4 nozzle",
|
||||
"Creality CR-6 Max 0.6 nozzle",
|
||||
"Creality CR-6 Max 0.8 nozzle",
|
||||
"Creality Sermoon V1 0.4 nozzle",
|
||||
"Creality Ender-3 0.2 nozzle",
|
||||
"Creality Ender-3 0.4 nozzle",
|
||||
"Creality Ender-3 0.6 nozzle",
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
"Creality CR-6 Max 0.4 nozzle",
|
||||
"Creality CR-6 Max 0.6 nozzle",
|
||||
"Creality CR-6 Max 0.8 nozzle",
|
||||
"Creality Sermoon V1 0.4 nozzle",
|
||||
"Creality Ender-3 0.2 nozzle",
|
||||
"Creality Ender-3 0.4 nozzle",
|
||||
"Creality Ender-3 0.6 nozzle",
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
"Creality CR-6 Max 0.4 nozzle",
|
||||
"Creality CR-6 Max 0.6 nozzle",
|
||||
"Creality CR-6 Max 0.8 nozzle",
|
||||
"Creality Sermoon V1 0.4 nozzle",
|
||||
"Creality Ender-3 0.2 nozzle",
|
||||
"Creality Ender-3 0.4 nozzle",
|
||||
"Creality Ender-3 0.6 nozzle",
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
"Creality K1 Max (0.4 nozzle)",
|
||||
"Creality K1 Max (0.6 nozzle)",
|
||||
"Creality K1 Max (0.8 nozzle)",
|
||||
"Creality Sermoon V1 0.4 nozzle",
|
||||
"Creality CR-10 SE 0.2 nozzle",
|
||||
"Creality CR-10 SE 0.4 nozzle",
|
||||
"Creality CR-10 SE 0.6 nozzle",
|
||||
|
|
|
@ -60,11 +60,14 @@
|
|||
"print_host_webui": "10.0.0.51",
|
||||
"gcode_flavor": "marlin",
|
||||
"thumbnails": [
|
||||
"32x32",
|
||||
"64x64",
|
||||
"400x400"
|
||||
],
|
||||
"extruder_clearance_height_to_lid": "125",
|
||||
"extruder_clearance_height_to_rod": "40",
|
||||
"extruder_clearance_radius": "50",
|
||||
"printable_height": "165",
|
||||
"change_filament_gcode": "; S1 Pause For Filament change\nM125",
|
||||
"nozzle_type": "undefine",
|
||||
"nozzle_type": "brass",
|
||||
"auxiliary_fan": "1"
|
||||
}
|
||||
|
|
|
@ -11,5 +11,5 @@
|
|||
"Spiral Lift"
|
||||
],
|
||||
"hotend_model": "",
|
||||
"default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS"
|
||||
"default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS;Creality Generic TPU"
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ input
|
|||
height: calc(100% - 6px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 6px solid #00AE42;
|
||||
border-bottom: 6px solid #009688;
|
||||
}
|
||||
|
||||
#Title div.TitleUnselected
|
||||
|
@ -205,4 +205,4 @@ input
|
|||
.CFilament_EditBtn:hover
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2352,11 +2352,17 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
|||
auto probe_dist_y = std::max(1., m_config.bed_mesh_probe_distance.value.y());
|
||||
int probe_count_x = std::max(3, (int) std::ceil(mesh_bbox.size().x() / probe_dist_x));
|
||||
int probe_count_y = std::max(3, (int) std::ceil(mesh_bbox.size().y() / probe_dist_y));
|
||||
this->placeholder_parser().set("bed_mesh_probe_count", new ConfigOptionInts({probe_count_x, probe_count_y}));
|
||||
auto bed_mesh_algo = "bicubic";
|
||||
if (probe_count_x < 4 || probe_count_y < 4) {
|
||||
if (probe_count_x * probe_count_y <= 6) { // lagrange needs up to a total of 6 mesh points
|
||||
bed_mesh_algo = "lagrange";
|
||||
}
|
||||
else
|
||||
if(print.config().gcode_flavor == gcfKlipper){
|
||||
// bicubic needs 4 probe points per axis
|
||||
probe_count_x = std::max(probe_count_x,4);
|
||||
probe_count_y = std::max(probe_count_y,4);
|
||||
}
|
||||
this->placeholder_parser().set("bed_mesh_probe_count", new ConfigOptionInts({probe_count_x, probe_count_y}));
|
||||
this->placeholder_parser().set("bed_mesh_algo", bed_mesh_algo);
|
||||
// get center without wipe tower
|
||||
BoundingBoxf bbox_wo_wt; // bounding box without wipe tower
|
||||
|
|
|
@ -550,7 +550,8 @@ WipeTower2::WipeTower2(const PrintConfig& config, const PrintRegionConfig& defau
|
|||
m_infill_speed(default_region_config.sparse_infill_speed),
|
||||
m_perimeter_speed(default_region_config.inner_wall_speed),
|
||||
m_current_tool(initial_tool),
|
||||
wipe_volumes(wiping_matrix)
|
||||
wipe_volumes(wiping_matrix),
|
||||
m_wipe_tower_max_purge_speed(float(config.wipe_tower_max_purge_speed))
|
||||
{
|
||||
// Read absolute value of first layer speed, if given as percentage,
|
||||
// it is taken over following default. Speeds from config are not
|
||||
|
@ -1099,7 +1100,7 @@ void WipeTower2::toolchange_Wipe(
|
|||
// All the calculations in all other places take the spacing into account for all the layers.
|
||||
|
||||
// If spare layers are excluded->if 1 or less toolchange has been done, it must be sill the first layer, too.So slow down.
|
||||
const float target_speed = is_first_layer() || (m_num_tool_changes <= 1 && m_no_sparse_layers) ? m_first_layer_speed * 60.f : std::min(5400.f, m_infill_speed * 60.f);
|
||||
const float target_speed = is_first_layer() || (m_num_tool_changes <= 1 && m_no_sparse_layers) ? m_first_layer_speed * 60.f : std::min(m_wipe_tower_max_purge_speed * 60.f, m_infill_speed * 60.f);
|
||||
float wipe_speed = 0.33f * target_speed;
|
||||
|
||||
// if there is less than 2.5*m_perimeter_width to the edge, advance straightaway (there is likely a blob anyway)
|
||||
|
|
|
@ -189,6 +189,7 @@ private:
|
|||
int m_old_temperature = -1; // To keep track of what was the last temp that we set (so we don't issue the command when not neccessary)
|
||||
float m_travel_speed = 0.f;
|
||||
float m_infill_speed = 0.f;
|
||||
float m_wipe_tower_max_purge_speed = 90.f;
|
||||
float m_perimeter_speed = 0.f;
|
||||
float m_first_layer_speed = 0.f;
|
||||
size_t m_first_layer_idx = size_t(-1);
|
||||
|
|
|
@ -181,6 +181,7 @@ void Layer::make_perimeters()
|
|||
&& config.opt_serialize("outer_wall_line_width") == other_config.opt_serialize("outer_wall_line_width")
|
||||
&& config.detect_thin_wall == other_config.detect_thin_wall
|
||||
&& config.infill_wall_overlap == other_config.infill_wall_overlap
|
||||
&& config.top_bottom_infill_wall_overlap == other_config.top_bottom_infill_wall_overlap
|
||||
&& config.fuzzy_skin == other_config.fuzzy_skin
|
||||
&& config.fuzzy_skin_thickness == other_config.fuzzy_skin_thickness
|
||||
&& config.fuzzy_skin_point_distance == other_config.fuzzy_skin_point_distance
|
||||
|
|
|
@ -2138,10 +2138,17 @@ void PerimeterGenerator::process_classic()
|
|||
ext_perimeter_spacing / 2 :
|
||||
// two or more loops?
|
||||
perimeter_spacing / 2;
|
||||
|
||||
// only apply infill overlap if we actually have one perimeter
|
||||
coord_t infill_peri_overlap = 0;
|
||||
coord_t top_infill_peri_overlap = 0;
|
||||
if (inset > 0) {
|
||||
infill_peri_overlap = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale<double>(inset + solid_infill_spacing / 2))));
|
||||
if(this->layer_id == 0 || this->upper_slices == nullptr){
|
||||
infill_peri_overlap = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale<double>(inset + solid_infill_spacing / 2))));
|
||||
}else{
|
||||
infill_peri_overlap = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale<double>(inset + solid_infill_spacing / 2))));
|
||||
top_infill_peri_overlap = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale<double>(inset + solid_infill_spacing / 2))));
|
||||
}
|
||||
inset -= infill_peri_overlap;
|
||||
}
|
||||
// simplify infill contours according to resolution
|
||||
|
@ -2160,7 +2167,7 @@ void PerimeterGenerator::process_classic()
|
|||
//if any top_fills, grow them by ext_perimeter_spacing/2 to have the real un-anchored fill
|
||||
ExPolygons top_infill_exp = intersection_ex(fill_clip, offset_ex(top_fills, double(ext_perimeter_spacing / 2)));
|
||||
if (!top_fills.empty()) {
|
||||
infill_exp = union_ex(infill_exp, offset_ex(top_infill_exp, double(infill_peri_overlap)));
|
||||
infill_exp = union_ex(infill_exp, offset_ex(top_infill_exp, double(top_infill_peri_overlap)));
|
||||
}
|
||||
this->fill_surfaces->append(infill_exp, stInternal);
|
||||
|
||||
|
@ -2866,8 +2873,14 @@ ExPolygons infill_contour = union_ex(wallToolPaths.getInnerContour());
|
|||
ext_perimeter_spacing :
|
||||
// two or more loops?
|
||||
perimeter_spacing;
|
||||
|
||||
inset = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale<double>(inset))));
|
||||
coord_t top_inset = inset;
|
||||
|
||||
top_inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale<double>(inset))));
|
||||
if(is_topmost_layer || is_bottom_layer)
|
||||
inset = coord_t(scale_(this->config->top_bottom_infill_wall_overlap.get_abs_value(unscale<double>(inset))));
|
||||
else
|
||||
inset = coord_t(scale_(this->config->infill_wall_overlap.get_abs_value(unscale<double>(inset))));
|
||||
|
||||
// simplify infill contours according to resolution
|
||||
Polygons pp;
|
||||
for (ExPolygon& ex : infill_contour)
|
||||
|
@ -2882,7 +2895,7 @@ ExPolygons infill_contour = union_ex(wallToolPaths.getInnerContour());
|
|||
float(inset + min_perimeter_infill_spacing / 2.));
|
||||
// append infill areas to fill_surfaces
|
||||
if (!top_fills.empty()) {
|
||||
infill_exp = union_ex(infill_exp, offset_ex(top_fills, double(inset)));
|
||||
infill_exp = union_ex(infill_exp, offset_ex(top_fills, double(top_inset)));
|
||||
}
|
||||
this->fill_surfaces->append(infill_exp, stInternal);
|
||||
|
||||
|
|
|
@ -793,7 +793,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||
"sparse_infill_filament", "solid_infill_filament", "support_filament", "support_interface_filament","support_interface_not_for_body",
|
||||
"ooze_prevention", "standby_temperature_delta", "interface_shells", "line_width", "initial_layer_line_width",
|
||||
"inner_wall_line_width", "outer_wall_line_width", "sparse_infill_line_width", "internal_solid_infill_line_width",
|
||||
"top_surface_line_width", "support_line_width", "infill_wall_overlap", "bridge_flow", "internal_bridge_flow",
|
||||
"top_surface_line_width", "support_line_width", "infill_wall_overlap","top_bottom_infill_wall_overlap", "bridge_flow", "internal_bridge_flow",
|
||||
"elefant_foot_compensation", "elefant_foot_compensation_layers", "xy_contour_compensation", "xy_hole_compensation", "resolution", "enable_prime_tower",
|
||||
"prime_tower_width", "prime_tower_brim_width", "prime_volume",
|
||||
"wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits",
|
||||
|
@ -816,7 +816,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||
"tree_support_brim_width", "gcode_comments", "gcode_label_objects",
|
||||
"initial_layer_travel_speed", "exclude_object", "slow_down_layers", "infill_anchor", "infill_anchor_max","initial_layer_min_bead_width",
|
||||
"make_overhang_printable", "make_overhang_printable_angle", "make_overhang_printable_hole_size" ,"notes",
|
||||
"wipe_tower_cone_angle", "wipe_tower_extra_spacing", "wipe_tower_extruder", "wiping_volumes_extruders","wipe_tower_bridging", "single_extruder_multi_material_priming",
|
||||
"wipe_tower_cone_angle", "wipe_tower_extra_spacing","wipe_tower_max_purge_speed", "wipe_tower_extruder", "wiping_volumes_extruders","wipe_tower_bridging", "single_extruder_multi_material_priming",
|
||||
"wipe_tower_rotation_angle", "tree_support_branch_distance_organic", "tree_support_branch_diameter_organic", "tree_support_branch_angle_organic",
|
||||
"hole_to_polyhole", "hole_to_polyhole_threshold", "hole_to_polyhole_twisted", "mmu_segmented_region_max_width", "mmu_segmented_region_interlocking_depth",
|
||||
"small_area_infill_flow_compensation", "small_area_infill_flow_compensation_model",
|
||||
|
|
|
@ -304,6 +304,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||
|| opt_key == "slow_down_layers"
|
||||
|| opt_key == "wipe_tower_cone_angle"
|
||||
|| opt_key == "wipe_tower_extra_spacing"
|
||||
|| opt_key == "wipe_tower_max_purge_speed"
|
||||
|| opt_key == "wipe_tower_extruder"
|
||||
|| opt_key == "wiping_volumes_extruders"
|
||||
|| opt_key == "enable_filament_ramming"
|
||||
|
|
|
@ -2680,11 +2680,20 @@ def = this->add("filament_loading_speed", coFloats);
|
|||
def = this->add("infill_wall_overlap", coPercent);
|
||||
def->label = L("Infill/Wall overlap");
|
||||
def->category = L("Strength");
|
||||
def->tooltip = L("Infill area is enlarged slightly to overlap with wall for better bonding. The percentage value is relative to line width of sparse infill");
|
||||
def->tooltip = L("Infill area is enlarged slightly to overlap with wall for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces.");
|
||||
def->sidetext = L("%");
|
||||
def->ratio_over = "inner_wall_line_width";
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionPercent(15));
|
||||
|
||||
def = this->add("top_bottom_infill_wall_overlap", coPercent);
|
||||
def->label = L("Top/Bottom solid infill/wall overlap");
|
||||
def->category = L("Strength");
|
||||
def->tooltip = L("Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimising the appearance of pinholes. The percentage value is relative to line width of sparse infill");
|
||||
def->sidetext = L("%");
|
||||
def->ratio_over = "inner_wall_line_width";
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionPercent(25));
|
||||
|
||||
def = this->add("sparse_infill_speed", coFloat);
|
||||
def->label = L("Sparse infill");
|
||||
|
@ -4757,6 +4766,18 @@ def = this->add("filament_loading_speed", coFloats);
|
|||
def->min = 100.;
|
||||
def->max = 300.;
|
||||
def->set_default_value(new ConfigOptionPercent(100.));
|
||||
|
||||
def = this->add("wipe_tower_max_purge_speed", coFloat);
|
||||
def->label = L("Maximum print speed when purging");
|
||||
def->tooltip = L("The maximum print speed when purging in the wipe tower. If the sparse infill speed "
|
||||
"or calculated speed from the filament max volumetric speed is lower, the lowest speed will be used instead.\n"
|
||||
"Increasing this speed may affect the tower's stability, as purging can be performed over "
|
||||
"sparse layers. Before increasing this parameter beyond the default of 90mm/sec, make sure your printer can reliably "
|
||||
"bridge at the increased speeds.");
|
||||
def->sidetext = L("mm/s");
|
||||
def->mode = comAdvanced;
|
||||
def->min = 10;
|
||||
def->set_default_value(new ConfigOptionFloat(90.));
|
||||
|
||||
def = this->add("wipe_tower_extruder", coInt);
|
||||
def->label = L("Wipe tower extruder");
|
||||
|
|
|
@ -894,6 +894,7 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||
((ConfigOptionInt, sparse_infill_filament))
|
||||
((ConfigOptionFloatOrPercent, sparse_infill_line_width))
|
||||
((ConfigOptionPercent, infill_wall_overlap))
|
||||
((ConfigOptionPercent, top_bottom_infill_wall_overlap))
|
||||
((ConfigOptionFloat, sparse_infill_speed))
|
||||
//BBS
|
||||
((ConfigOptionBool, infill_combination))
|
||||
|
@ -1240,6 +1241,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||
// Orca: mmu support
|
||||
((ConfigOptionFloat, wipe_tower_cone_angle))
|
||||
((ConfigOptionPercent, wipe_tower_extra_spacing))
|
||||
((ConfigOptionFloat, wipe_tower_max_purge_speed))
|
||||
((ConfigOptionInt, wipe_tower_extruder))
|
||||
((ConfigOptionFloats, wiping_volumes_extruders))
|
||||
|
||||
|
|
|
@ -926,6 +926,7 @@ bool PrintObject::invalidate_state_by_config_options(
|
|||
|| opt_key == "initial_layer_line_width"
|
||||
|| opt_key == "inner_wall_line_width"
|
||||
|| opt_key == "infill_wall_overlap"
|
||||
|| opt_key == "top_bottom_infill_wall_overlap"
|
||||
|| opt_key == "seam_gap"
|
||||
|| opt_key == "role_based_wipe_speed"
|
||||
|| opt_key == "wipe_on_loops"
|
||||
|
|
|
@ -134,19 +134,19 @@ void BBLTopbarArt::DrawButton(wxDC& dc, wxWindow* wnd, const wxAuiToolBarItem& i
|
|||
{
|
||||
if (item.GetState() & wxAUI_BUTTON_STATE_PRESSED)
|
||||
{
|
||||
dc.SetPen(wxPen(m_highlightColour));
|
||||
dc.SetBrush(wxBrush(m_highlightColour.ChangeLightness(20)));
|
||||
dc.SetPen(wxPen(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
dc.SetBrush(wxBrush(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
dc.DrawRectangle(rect);
|
||||
}
|
||||
else if ((item.GetState() & wxAUI_BUTTON_STATE_HOVER) || item.IsSticky())
|
||||
{
|
||||
dc.SetPen(wxPen(m_highlightColour));
|
||||
dc.SetBrush(wxBrush(m_highlightColour.ChangeLightness(40)));
|
||||
dc.SetPen(wxPen(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
dc.SetBrush(wxBrush(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
|
||||
// draw an even lighter background for checked item hovers (since
|
||||
// the hover background is the same color as the check background)
|
||||
if (item.GetState() & wxAUI_BUTTON_STATE_CHECKED)
|
||||
dc.SetBrush(wxBrush(m_highlightColour.ChangeLightness(50)));
|
||||
dc.SetBrush(wxBrush(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
|
||||
dc.DrawRectangle(rect);
|
||||
}
|
||||
|
@ -154,8 +154,8 @@ void BBLTopbarArt::DrawButton(wxDC& dc, wxWindow* wnd, const wxAuiToolBarItem& i
|
|||
{
|
||||
// it's important to put this code in an else statement after the
|
||||
// hover, otherwise hovers won't draw properly for checked items
|
||||
dc.SetPen(wxPen(m_highlightColour));
|
||||
dc.SetBrush(wxBrush(m_highlightColour.ChangeLightness(40)));
|
||||
dc.SetPen(wxPen(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
dc.SetBrush(wxBrush(StateColor::darkModeColorFor("#009688"))); // ORCA
|
||||
dc.DrawRectangle(rect);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -678,7 +678,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
|||
|
||||
bool purge_in_primetower = preset_bundle->printers.get_edited_preset().config.opt_bool("purge_in_prime_tower");
|
||||
|
||||
for (auto el : {"wipe_tower_rotation_angle", "wipe_tower_cone_angle", "wipe_tower_extra_spacing", "wipe_tower_bridging", "wipe_tower_no_sparse_layers"})
|
||||
for (auto el : {"wipe_tower_rotation_angle", "wipe_tower_cone_angle", "wipe_tower_extra_spacing", "wipe_tower_max_purge_speed", "wipe_tower_bridging", "wipe_tower_no_sparse_layers"})
|
||||
toggle_line(el, have_prime_tower && purge_in_primetower);
|
||||
|
||||
toggle_line("prime_volume",have_prime_tower && !purge_in_primetower);
|
||||
|
|
|
@ -1382,7 +1382,6 @@ void MachineObject::parse_status(int flag)
|
|||
}
|
||||
|
||||
is_support_filament_tangle_detect = ((flag >> 19) & 0x1) != 0;
|
||||
is_support_user_preset = ((flag >> 22) & 0x1) != 0;
|
||||
if (xcam_filament_tangle_detect_count > 0)
|
||||
xcam_filament_tangle_detect_count--;
|
||||
else {
|
||||
|
|
|
@ -547,7 +547,7 @@ void GCodeViewer::SequentialView::GCodeWindow::render(float top, float bottom, f
|
|||
|
||||
static const ImVec4 LINE_NUMBER_COLOR = ImGuiWrapper::COL_ORANGE_LIGHT;
|
||||
static const ImVec4 SELECTION_RECT_COLOR = ImGuiWrapper::COL_ORANGE_DARK;
|
||||
static const ImVec4 COMMAND_COLOR = { 0.8f, 0.8f, 0.0f, 1.0f };
|
||||
static const ImVec4 COMMAND_COLOR = {0.8f, 0.8f, 0.0f, 1.0f};
|
||||
static const ImVec4 PARAMETERS_COLOR = { 1.0f, 1.0f, 1.0f, 1.0f };
|
||||
static const ImVec4 COMMENT_COLOR = { 0.7f, 0.7f, 0.7f, 1.0f };
|
||||
|
||||
|
|
|
@ -6387,6 +6387,7 @@ bool GLCanvas3D::_init_main_toolbar()
|
|||
item.icon_filename = m_is_dark ? "toolbar_variable_layer_height_dark.svg" : "toolbar_variable_layer_height.svg";
|
||||
item.tooltip = _utf8(L("Variable layer height"));
|
||||
item.sprite_id++;
|
||||
item.left.toggable = true; // ORCA Closes popup if other toolbar icon clicked and it allows closing popup when clicked its button
|
||||
item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_LAYERSEDITING)); };
|
||||
item.visibility_callback = [this]()->bool {
|
||||
bool res = current_printer_technology() == ptFFF;
|
||||
|
@ -7809,14 +7810,14 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
|
|||
float window_width = m_sel_plate_toolbar.icon_width + margin_size * 2 + (show_scroll ? 28.0f * f_scale : 20.0f * f_scale);
|
||||
|
||||
ImVec4 window_bg = ImVec4(0.82f, 0.82f, 0.82f, 0.5f);
|
||||
ImVec4 button_active = ImVec4(0.12f, 0.56f, 0.92, 1.0f);
|
||||
ImVec4 button_active = ImGuiWrapper::COL_ORCA; // ORCA: Use orca color for selected sliced plate border
|
||||
ImVec4 button_hover = ImVec4(0.67f, 0.67f, 0.67, 1.0f);
|
||||
ImVec4 scroll_col = ImVec4(0.77f, 0.77f, 0.77f, 1.0f);
|
||||
//ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.f, 0.f, 0.f, 1.0f));
|
||||
//use white text as the background switch to black
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_WindowBg, window_bg);
|
||||
ImGui::PushStyleColor(ImGuiCol_ScrollbarBg, window_bg);
|
||||
ImGui::PushStyleColor(ImGuiCol_ScrollbarBg, ImVec4(0.f, 0.f, 0.f, 0.f)); // ORCA using background color with opacity creates a second color. This prevents secondary color
|
||||
ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabActive, scroll_col);
|
||||
ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabHovered, scroll_col);
|
||||
ImGui::PushStyleColor(ImGuiCol_ScrollbarGrab, scroll_col);
|
||||
|
@ -7870,12 +7871,12 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar()
|
|||
ImTextureID btn_texture_id;
|
||||
if (all_plates_stats_item->slice_state == IMToolbarItem::SliceState::UNSLICED || all_plates_stats_item->slice_state == IMToolbarItem::SliceState::SLICING || all_plates_stats_item->slice_state == IMToolbarItem::SliceState::SLICE_FAILED)
|
||||
{
|
||||
text_clr = ImVec4(0, 174.0f / 255.0f, 66.0f / 255.0f, 0.2f);
|
||||
text_clr = ImVec4(0.0f, 150.f / 255.0f, 136.0f / 255, 0.2f); // ORCA: All plates slicing NOT complete - Text color
|
||||
btn_texture_id = (ImTextureID)(intptr_t)(all_plates_stats_item->image_texture_transparent.get_id());
|
||||
}
|
||||
else
|
||||
{
|
||||
text_clr = ImVec4(0, 174.0f / 255.0f, 66.0f / 255.0f, 1);
|
||||
text_clr = ImGuiWrapper::COL_ORCA; // ORCA: All plates slicing complete - Text color
|
||||
btn_texture_id = (ImTextureID)(intptr_t)(all_plates_stats_item->image_texture.get_id());
|
||||
}
|
||||
|
||||
|
@ -8398,7 +8399,7 @@ void GLCanvas3D::_render_assemble_info() const
|
|||
ImGui::PopFont();
|
||||
float margin = 10.0f * get_scale();
|
||||
imgui->set_next_window_pos(canvas_w - margin, canvas_h - margin, ImGuiCond_Always, 1.0f, 1.0f);
|
||||
ImGuiWrapper::push_toolbar_style(get_scale());
|
||||
ImGuiWrapper::push_common_window_style(get_scale()); // ORCA use window style for popups with title
|
||||
imgui->begin(_L("Assembly Info"), ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
||||
font->Scale = origScale;
|
||||
ImGui::PushFont(font);
|
||||
|
@ -8414,7 +8415,7 @@ void GLCanvas3D::_render_assemble_info() const
|
|||
ImGui::Text("%.2f x %.2f x %.2f", size0, size1, size2);
|
||||
}
|
||||
imgui->end();
|
||||
ImGuiWrapper::pop_toolbar_style();
|
||||
ImGuiWrapper::pop_common_window_style();
|
||||
}
|
||||
|
||||
#if ENABLE_SHOW_CAMERA_TARGET
|
||||
|
|
|
@ -116,7 +116,7 @@ namespace GUI {
|
|||
shader->set_uniform("view_model_matrix", Transform3d::Identity());
|
||||
shader->set_uniform("projection_matrix", Transform3d::Identity());
|
||||
|
||||
m_rectangle.set_color({0.0f, 1.0f, 0.38f, 1.0f});
|
||||
m_rectangle.set_color(ColorRGBA::ORCA()); // ORCA: use orca color for selection rectangle
|
||||
m_rectangle.render();
|
||||
shader->stop_using();
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ std::map<std::string, std::vector<SimpleSettingData>> SettingsFactory::PART_CAT
|
|||
{ L("Strength"), {{"wall_loops", "",1},{"top_shell_layers", L("Top Solid Layers"),1},{"top_shell_thickness", L("Top Minimum Shell Thickness"),1},
|
||||
{"bottom_shell_layers", L("Bottom Solid Layers"),1}, {"bottom_shell_thickness", L("Bottom Minimum Shell Thickness"),1},
|
||||
{"sparse_infill_density", "",1},{"sparse_infill_pattern", "",1},{"infill_anchor", "",1},{"infill_anchor_max", "",1},{"top_surface_pattern", "",1},{"bottom_surface_pattern", "",1}, {"internal_solid_infill_pattern", "",1},
|
||||
{"infill_combination", "",1}, {"infill_wall_overlap", "",1}, {"solid_infill_direction", "",1}, {"rotate_solid_infill_direction", "",1}, {"infill_direction", "",1}, {"bridge_angle", "",1}, {"minimum_sparse_infill_area", "",1}
|
||||
{"infill_combination", "",1}, {"infill_wall_overlap", "",1},{"top_bottom_infill_wall_overlap", "",1}, {"solid_infill_direction", "",1}, {"rotate_solid_infill_direction", "",1}, {"infill_direction", "",1}, {"bridge_angle", "",1}, {"minimum_sparse_infill_area", "",1}
|
||||
}},
|
||||
{ L("Speed"), {{"outer_wall_speed", "",1},{"inner_wall_speed", "",2},{"sparse_infill_speed", "",3},{"top_surface_speed", "",4}, {"internal_solid_infill_speed", "",5},
|
||||
{"enable_overhang_speed", "",6}, {"overhang_speed_classic", "",6}, {"overhang_1_4_speed", "",7}, {"overhang_2_4_speed", "",8}, {"overhang_3_4_speed", "",9}, {"overhang_4_4_speed", "",10},
|
||||
|
|
|
@ -291,11 +291,12 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l
|
|||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
||||
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA: Fixes icon rendered without colors while using Light theme
|
||||
if (m_current_tool == tool_ids[i]) {
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f)); // r, g, b, a
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
||||
}
|
||||
|
@ -305,6 +306,7 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l
|
|||
ImGui::PopStyleColor(4);
|
||||
ImGui::PopStyleVar(2);
|
||||
}
|
||||
ImGui::PopStyleColor(1);
|
||||
ImGui::PopStyleVar(1);
|
||||
|
||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||
|
|
|
@ -470,14 +470,14 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||
ImGuiColorEditFlags flags = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoPicker | ImGuiColorEditFlags_NoTooltip;
|
||||
if (m_selected_extruder_idx != extruder_idx) flags |= ImGuiColorEditFlags_NoBorder;
|
||||
#ifdef __APPLE__
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA); // ORCA use orca color for selected filament border
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0);
|
||||
bool color_picked = ImGui::ColorButton(color_label.c_str(), color_vec, flags, button_size);
|
||||
ImGui::PopStyleVar(2);
|
||||
ImGui::PopStyleColor(1);
|
||||
#else
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA); // ORCA use orca color for selected filament border
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 2.0);
|
||||
bool color_picked = ImGui::ColorButton(color_label.c_str(), color_vec, flags, button_size);
|
||||
|
@ -519,11 +519,12 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||
|
||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.5f));
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA: Fixes icon rendered without colors while using Light theme
|
||||
if (m_current_tool == tool_ids[i]) {
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f)); // r, g, b, a
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
||||
}
|
||||
|
@ -533,6 +534,7 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||
ImGui::PopStyleColor(4);
|
||||
ImGui::PopStyleVar(2);
|
||||
}
|
||||
ImGui::PopStyleColor(1);
|
||||
ImGui::PopStyleVar(1);
|
||||
|
||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||
|
|
|
@ -244,11 +244,12 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit)
|
|||
|
||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA: Fixes icon rendered without colors while using Light theme
|
||||
if (m_current_tool == tool_ids[i]) {
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f)); // r, g, b, a
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, m_is_dark_mode ? ImVec4(43 / 255.0f, 64 / 255.0f, 54 / 255.0f, 1.00f) : ImVec4(0.86f, 0.99f, 0.91f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
||||
}
|
||||
|
@ -258,6 +259,7 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit)
|
|||
ImGui::PopStyleColor(4);
|
||||
ImGui::PopStyleVar(2);
|
||||
}
|
||||
ImGui::PopStyleColor(1);
|
||||
ImGui::PopStyleVar(1);
|
||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||
m_current_tool = tool_ids[i];
|
||||
|
|
|
@ -278,8 +278,8 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi
|
|||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.81f, 0.81f, 0.81f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, ImVec4(0.81f, 0.81f, 0.81f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_FrameBgActive, ImVec4(0.81f, 0.81f, 0.81f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImVec4(0.00f, 0.68f, 0.26f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImGuiWrapper::COL_ORCA); // ORCA Use orca color for step slider text
|
||||
ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImGuiWrapper::COL_ORCA); // ORCA Use orca color for step slider thumb
|
||||
|
||||
if (m_imgui->bbl_sliderin("##ReductionLevel", &reduction, 0, 4, reduce_captions[reduction].c_str())) {
|
||||
if (reduction < 0) reduction = 0;
|
||||
|
|
|
@ -1073,7 +1073,7 @@ bool IMSlider::render(int canvas_width, int canvas_height)
|
|||
ImGui::PushStyleVar(ImGuiStyleVar_::ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f));
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_::ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_::ImGuiCol_WindowBg, ImVec4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_::ImGuiCol_Text, ImVec4(0, 0.682f, 0.259f, 1.0f));
|
||||
ImGui::PushStyleColor(ImGuiCol_::ImGuiCol_Text, ImGuiWrapper::COL_ORCA); // ORCA: Use orca color for slider value text
|
||||
|
||||
int windows_flag = ImGuiWindowFlags_NoTitleBar
|
||||
| ImGuiWindowFlags_NoCollapse
|
||||
|
|
|
@ -2512,7 +2512,7 @@ void ImGuiWrapper::push_confirm_button_style() {
|
|||
if (m_is_dark_mode) {
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f / 255.f, 150.f / 255.f, 136.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.f / 255.f, 150.f / 255.f, 136.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(61.f / 255.f, 203.f / 255.f, 115.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, to_ImVec4(decode_color_to_float_array("#267E73")));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(27.f / 255.f, 136.f / 255.f, 68.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, ImVec4(1.f, 1.f, 1.f, 0.88f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 0.88f));
|
||||
|
@ -2520,7 +2520,7 @@ void ImGuiWrapper::push_confirm_button_style() {
|
|||
else {
|
||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f / 255.f, 150.f / 255.f, 136.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0.f / 255.f, 150.f / 255.f, 136.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(61.f / 255.f, 203.f / 255.f, 115.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, to_ImVec4(decode_color_to_float_array("#26A69A")));
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(27.f / 255.f, 136.f / 255.f, 68.f / 255.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, ImVec4(1.f, 1.f, 1.f, 1.f));
|
||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f));
|
||||
|
@ -2605,9 +2605,9 @@ void ImGuiWrapper::pop_combo_style()
|
|||
void ImGuiWrapper::push_radio_style()
|
||||
{
|
||||
if (m_is_dark_mode) {
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, ImVec4(1.00f, 1.00f, 1.00f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, to_ImVec4(decode_color_to_float_array("#00675b"))); // ORCA use orca color for radio buttons
|
||||
} else {
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, ImVec4(0.00f, 0.00f, 0.00f, 1.00f));
|
||||
ImGui::PushStyleColor(ImGuiCol_CheckMark, to_ImVec4(decode_color_to_float_array("#009688"))); // ORCA use orca color for radio buttons
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2888,12 +2888,12 @@ void ImGuiWrapper::init_style()
|
|||
|
||||
// ComboBox items
|
||||
set_color(ImGuiCol_Header, COL_ORANGE_DARK);
|
||||
set_color(ImGuiCol_HeaderHovered, COL_BLUE_LIGHT);
|
||||
set_color(ImGuiCol_HeaderActive, COL_BLUE_LIGHT);
|
||||
set_color(ImGuiCol_HeaderHovered, to_ImVec4(to_rgba(ColorRGB::ORCA(), 0.50f))); // ORCA Use orca color for headers
|
||||
set_color(ImGuiCol_HeaderActive, to_ImVec4(to_rgba(ColorRGB::ORCA(), 0.75f))); // ORCA Use orca color for headers
|
||||
|
||||
// Slider
|
||||
set_color(ImGuiCol_SliderGrab, COL_BLUE_LIGHT);
|
||||
set_color(ImGuiCol_SliderGrabActive, COL_BLUE_LIGHT);
|
||||
set_color(ImGuiCol_SliderGrab, to_ImVec4(to_rgba(ColorRGB::ORCA(), 0.50f))); // ORCA Use orca color for slider thumbs
|
||||
set_color(ImGuiCol_SliderGrabActive, to_ImVec4(to_rgba(ColorRGB::ORCA(), 0.75f))); // ORCA Use orca color for slider thumbs
|
||||
|
||||
// Separator
|
||||
set_color(ImGuiCol_Separator, COL_BLUE_LIGHT);
|
||||
|
|
|
@ -2706,7 +2706,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||
"brim_width", "wall_loops", "wall_filament", "sparse_infill_density", "sparse_infill_filament", "top_shell_layers",
|
||||
"enable_support", "support_filament", "support_interface_filament",
|
||||
"support_top_z_distance", "support_bottom_z_distance", "raft_layers",
|
||||
"wipe_tower_rotation_angle", "wipe_tower_cone_angle", "wipe_tower_extra_spacing", "wipe_tower_extruder",
|
||||
"wipe_tower_rotation_angle", "wipe_tower_cone_angle", "wipe_tower_extra_spacing","wipe_tower_max_purge_speed", "wipe_tower_extruder",
|
||||
"best_object_pos"
|
||||
}))
|
||||
, sidebar(new Sidebar(q))
|
||||
|
|
|
@ -1015,7 +1015,7 @@ wxWindow* PreferencesDialog::create_general_page()
|
|||
std::vector<wxString> Regions = {_L("Asia-Pacific"), _L("China"), _L("Europe"), _L("North America"), _L("Others")};
|
||||
auto item_region= create_item_region_combobox(_L("Login Region"), page, _L("Login Region"), Regions);
|
||||
|
||||
auto item_stealth_mode = create_item_checkbox(_L("Stealth Mode"), page, _L("Stealth Mode"), 50, "stealth_mode");
|
||||
auto item_stealth_mode = create_item_checkbox(_L("Stealth Mode"), page, _L("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."), 50, "stealth_mode");
|
||||
auto item_enable_plugin = create_item_checkbox(_L("Enable network plugin"), page, _L("Enable network plugin"), 50, "installed_networking");
|
||||
auto item_check_stable_version_only = create_item_checkbox(_L("Check for stable updates only"), page, _L("Check for stable updates only"), 50, "check_stable_update_only");
|
||||
|
||||
|
|
|
@ -319,6 +319,8 @@ void Tab::create_preset_tab()
|
|||
if (m_presets_choice) m_presets_choice->Show();
|
||||
|
||||
m_btn_save_preset->Show();
|
||||
m_btn_delete_preset->Show(); // ORCA: fixes delete preset button visible while search box focused
|
||||
m_undo_btn->Show(); // ORCA: fixes revert preset button visible while search box focused
|
||||
m_btn_search->Show();
|
||||
m_search_item->Hide();
|
||||
|
||||
|
@ -347,6 +349,8 @@ void Tab::create_preset_tab()
|
|||
m_presets_choice->Hide();
|
||||
|
||||
m_btn_save_preset->Hide();
|
||||
m_btn_delete_preset->Hide(); // ORCA: fixes delete preset button visible while search box focused
|
||||
m_undo_btn->Hide(); // ORCA: fixes revert preset button visible while search box focused
|
||||
m_btn_search->Hide();
|
||||
m_search_item->Show();
|
||||
|
||||
|
@ -2116,6 +2120,7 @@ void TabPrint::build()
|
|||
optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
optgroup->append_single_option_line("bottom_shell_layers");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness");
|
||||
optgroup->append_single_option_line("top_bottom_infill_wall_overlap");
|
||||
|
||||
optgroup = page->new_optgroup(L("Infill"), L"param_infill");
|
||||
optgroup->append_single_option_line("sparse_infill_density");
|
||||
|
@ -2125,9 +2130,9 @@ void TabPrint::build()
|
|||
optgroup->append_single_option_line("internal_solid_infill_pattern");
|
||||
optgroup->append_single_option_line("gap_fill_target");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill");
|
||||
optgroup->append_single_option_line("infill_wall_overlap");
|
||||
|
||||
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("infill_wall_overlap");
|
||||
optgroup->append_single_option_line("infill_direction");
|
||||
optgroup->append_single_option_line("solid_infill_direction");
|
||||
optgroup->append_single_option_line("rotate_solid_infill_direction");
|
||||
|
@ -2283,6 +2288,7 @@ void TabPrint::build()
|
|||
optgroup->append_single_option_line("wipe_tower_bridging");
|
||||
optgroup->append_single_option_line("wipe_tower_cone_angle");
|
||||
optgroup->append_single_option_line("wipe_tower_extra_spacing");
|
||||
optgroup->append_single_option_line("wipe_tower_max_purge_speed");
|
||||
optgroup->append_single_option_line("wipe_tower_no_sparse_layers");
|
||||
// optgroup->append_single_option_line("single_extruder_multi_material_priming");
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ ComboBox::ComboBox(wxWindow *parent,
|
|||
std::make_pair(0x009688, (int) StateColor::Hovered),
|
||||
std::make_pair(0xDBDBDB, (int) StateColor::Normal)));
|
||||
TextInput::SetBackgroundColor(StateColor(std::make_pair(0xF0F0F1, (int) StateColor::Disabled),
|
||||
std::make_pair(0xEDFAF2, (int) StateColor::Focused),
|
||||
std::make_pair(0xE5F0EE, (int) StateColor::Focused), // ORCA updated background color for focused item
|
||||
std::make_pair(*wxWHITE, (int) StateColor::Normal)));
|
||||
TextInput::SetLabelColor(StateColor(std::make_pair(0x909090, (int) StateColor::Disabled),
|
||||
std::make_pair(0x262E30, (int) StateColor::Normal)));
|
||||
|
|
|
@ -41,7 +41,7 @@ DropDown::DropDown(std::vector<wxString> &texts,
|
|||
, text_color(0x363636)
|
||||
, selector_border_color(std::make_pair(0x009688, (int) StateColor::Hovered),
|
||||
std::make_pair(*wxWHITE, (int) StateColor::Normal))
|
||||
, selector_background_color(std::make_pair(0xEDFAF2, (int) StateColor::Checked),
|
||||
, selector_background_color(std::make_pair(0xBFE1DE, (int) StateColor::Checked), // ORCA updated background color for checked item
|
||||
std::make_pair(*wxWHITE, (int) StateColor::Normal))
|
||||
{
|
||||
}
|
||||
|
|
|
@ -146,8 +146,8 @@ void SideToolsPanel::doRender(wxDC &dc)
|
|||
//}
|
||||
|
||||
if (m_none_printer) {
|
||||
dc.SetPen(SIDE_TOOLS_BRAND);
|
||||
dc.SetBrush(SIDE_TOOLS_BRAND);
|
||||
dc.SetPen(StateColor::darkModeColorFor(SIDE_TOOLS_BRAND)); // ORCA: Sidebar header background color - Fix for dark mode compability
|
||||
dc.SetBrush(StateColor::darkModeColorFor(SIDE_TOOLS_BRAND)); // ORCA: Sidebar header background color - Fix for dark mode compability
|
||||
dc.DrawRectangle(0, 0, size.x, size.y);
|
||||
|
||||
dc.DrawBitmap(m_none_printing_img.bmp(), left, (size.y - m_none_printing_img.GetBmpSize().y) / 2);
|
||||
|
|
|
@ -40,6 +40,9 @@ static std::map<wxColour, wxColour> gDarkColors{
|
|||
{"#ABABAB", "#ABABAB"},
|
||||
{"#D9D9D9", "#2D2D32"},
|
||||
//{"#F0F0F0", "#4C4C54"},
|
||||
// ORCA
|
||||
{"#BFE1DE", "#223C3C"}, // rgb(191, 225, 222) Dropdown checked item background color > ORCA color with %25 opacity
|
||||
{"#E5F0EE", "#283232"}, // rgb(229, 240, 238) Combo / Dropdown focused background color > ORCA color with %10 opacity
|
||||
};
|
||||
|
||||
std::tuple<double, double, double> StateColor::GetLAB(const wxColour& color) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue