Design tab: give the Surface drawer its own icon

The Surface drawer used design_extrude, the same face as the Add-material
drawer, so the two buttons were indistinguishable in the feature bar.
design_surface.svg is a draped patch — deliberately unlike design_plane (a flat
parallelogram) and design_extrude (a box with an up-arrow) — with a faint
interior rule so it reads as a skin rather than a solid face. Same visual
language as the other 71: 24x24, no fill, #b6b6b6, stroke-width 0.85, round
caps and joins.

The five surface ENTRIES that also used design_extrude now use it too. That is
not cosmetic tidying: a flyout button's face follows the last-picked entry
(SetBitmap_(icon_names[i])), so changing only the drawer's default icon would
have been undone the moment the user picked anything. Surface Loft keeps
design_loft, which already suits it.

The six rows still share one glyph between them, so they are told apart by
label alone inside the flyout. Per-entry icons belong with snaporca-vrg
(Draft/Shell reusing design_dressup), not here.

Compiles clean; kernel untouched. Icon confirmed legible on hardware.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tommaso Bianchi
2026-07-26 04:58:10 +02:00
co-authored by Claude Opus 5
parent c565d6ba86
commit 0455b0bf96
2 changed files with 9 additions and 6 deletions
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#b6b6b6" stroke-width="0.85" stroke-linecap="round" stroke-linejoin="round"><path d="M3 14C7 10 11 18 15 14L21 9C17 13 13 5 9 9Z"/><path d="M6 11.5 12 6.5" stroke-opacity="0.55"/></svg>

After

Width:  |  Height:  |  Size: 289 B

+8 -6
View File
@@ -628,8 +628,10 @@ DesignPanel::DesignPanel(wxWindow* parent)
fadd("pattern", b_pattern);
// Surface: sheet-body tools (extrude / revolve / loft / fill / offset / thicken)
feat_dropdown("surface", "design_extrude", _L("Surface (extrude / revolve / loft / fill / offset / thicken)"), {
{"design_extrude", _L("Surface Extrude"), _L("Extrude a sketch into a sheet body (no end caps)"),
// design_surface, not design_extrude: sharing a face with the Add-material drawer made
// the two buttons indistinguishable in the bar.
feat_dropdown("surface", "design_surface", _L("Surface (extrude / revolve / loft / fill / offset / thicken)"), {
{"design_surface", _L("Surface Extrude"), _L("Extrude a sketch into a sheet body (no end caps)"),
[this] {
m_surf_extrude_sketch_ref = resolve_extrude_sketch();
if (m_surf_extrude_sketch_ref < 0) {
@@ -640,7 +642,7 @@ DesignPanel::DesignPanel(wxWindow* parent)
}
open_tool(Tool::SurfaceExtrude);
}, SHIFT('G')},
{"design_extrude", _L("Surface Revolve"), _L("Revolve a sketch profile into a sheet body"),
{"design_surface", _L("Surface Revolve"), _L("Revolve a sketch profile into a sheet body"),
[this] {
m_surf_revolve_sketch_ref = resolve_extrude_sketch();
if (m_surf_revolve_sketch_ref < 0) {
@@ -665,7 +667,7 @@ DesignPanel::DesignPanel(wxWindow* parent)
m_surf_loft_refs.clear();
open_tool(Tool::SurfaceLoft);
}, SHIFT('O')},
{"design_extrude", _L("Surface Fill"), _L("Fill a sketch boundary with a smooth face"),
{"design_surface", _L("Surface Fill"), _L("Fill a sketch boundary with a smooth face"),
[this] {
m_surf_fill_sketch_ref = resolve_extrude_sketch();
if (m_surf_fill_sketch_ref < 0) {
@@ -676,7 +678,7 @@ DesignPanel::DesignPanel(wxWindow* parent)
}
open_tool(Tool::SurfaceFill);
}, SHIFT('Q')},
{"design_extrude", _L("Surface Offset"), _L("Offset a sheet body's shell by a signed distance"),
{"design_surface", _L("Surface Offset"), _L("Offset a sheet body's shell by a signed distance"),
[this] {
populate_sheet_body_choices(m_surf_offset_body);
if (m_surf_offset_body->GetCount() == 0) {
@@ -687,7 +689,7 @@ DesignPanel::DesignPanel(wxWindow* parent)
}
open_tool(Tool::SurfaceOffset);
}, SHIFT('U')},
{"design_extrude", _L("Thicken Surface"), _L("Thicken a sheet body into a solid"),
{"design_surface", _L("Thicken Surface"), _L("Thicken a sheet body into a solid"),
[this] {
populate_sheet_body_choices(m_surf_thicken_body);
if (m_surf_thicken_body->GetCount() == 0) {