forked from 1b-agent/opencadstudio-upstream
feat(ui): use the shared colour selector in properties, ribbon and layers
Replace the bespoke colour pickers with the shared color_selector / color_list widget so colour selection is identical everywhere: - left properties panel (selected entities' colour) - ribbon Home-tab colour dropdown - layer manager per-layer colour Each routes its "More…" entry to the standalone Select Color window via a ColorPickTarget (Properties / Ribbon / Layer). Extracted color_list as the shared popup content; the colour selector button now fills its container. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
dfb2c6f9d7
commit
f7734b698f
6 files changed
+91
-167
No files matched your search
@@ -15,7 +15,7 @@ use iced::{Background, Border, Color, Element, Fill, Length, Padding, Theme};
|
||||
use crate::app::Message;
|
||||
use crate::modules::{CadModule, IconKind, RibbonItem};
|
||||
use crate::plugin::all_ribbon_modules;
|
||||
use crate::ui::properties::{color_picker_dropdown, lw_options, LinetypeItem};
|
||||
use crate::ui::properties::{lw_options, LinetypeItem};
|
||||
|
||||
mod widgets;
|
||||
use widgets::{StyleContext, *};
|
||||
@@ -817,12 +817,13 @@ impl Ribbon {
|
||||
}
|
||||
|
||||
fn prop_color_overlay(&self) -> Option<Element<'_, Message>> {
|
||||
let picker = color_picker_dropdown(
|
||||
self.prop_color_palette_open,
|
||||
Message::RibbonColorPaletteToggle,
|
||||
Some(Message::RibbonColorChanged(AcadColor::ByLayer)),
|
||||
Some(Message::RibbonColorChanged(AcadColor::ByBlock)),
|
||||
|aci| Message::RibbonColorChanged(AcadColor::Index(aci)),
|
||||
let picker = crate::ui::color_select::color_list(
|
||||
crate::ui::color_select::ColorExtras {
|
||||
by_layer: true,
|
||||
by_block: true,
|
||||
},
|
||||
Message::RibbonColorChanged,
|
||||
Message::OpenColorWindow(crate::app::ColorPickTarget::Ribbon),
|
||||
);
|
||||
|
||||
let panel = container(picker)
|
||||
|
||||
Reference in new issue
Block a user