Select Color: reuse helpers instead of repeated code

- book::add_or_replace adds a colour book or replaces one of the same
  name, for both reading the folders and loading a file.
- style.rs: the Plot Style and View Background colour targets use
  math::color_rgb (and hex_string) instead of their own conversions.
- Ribbon: one layer_color lookup for Ribbon::active_layer_color and the
  ribbon's ByLayer swatch.
- Picker: one swatch() for the Index and Document swatches, fill_of() for
  "colour or gray" and divider() for the 1 px separators.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rGmDUNr1hUf4zo1X3dak8
This commit is contained in:
Claude committed 2026-10-14 19:38:00 +00:00
1 parent 345f836e91
commit c71a874fe0
6 files changed
+104 -86

No files matched your search

+2 -4
View File
@@ -1174,11 +1174,9 @@ pub(super) fn render_large<'a>(item: &RibbonItem, ctx: &RenderCtx<'_>) -> Elemen
};
// ByLayer shows the current layer's colour.
let color_swatch = layer_infos
.iter()
.find(|layer| layer.name == active_layer)
let color_swatch = super::layer_color(layer_infos, active_layer)
.filter(|_| active_color == AcadColor::ByLayer)
.map_or_else(|| acad_color_display(active_color).0, |layer| layer.color);
.unwrap_or_else(|| acad_color_display(active_color).0);
let color_row = prop_row(
crate::ui::color_select::color_display_name(active_color),
PROP_COLOR_ID,