forked from 1b-agent/opencadstudio-upstream
Merge pull request #943 from gianlucafiore/fix/939-layout-tab-actions
fix(ui): restore context menu actions
This commit is contained in:
2 files changed
+42
-19
No files matched your search
+25
-7
@@ -2528,15 +2528,33 @@ fn doc_tab_context_menu(
|
||||
) -> Element<'static, Message> {
|
||||
const MENU_W: f32 = 210.0;
|
||||
|
||||
let item = |label: &'static str, msg: Option<Message>| {
|
||||
let mut item = button(text(label).size(12))
|
||||
.style(button::subtle)
|
||||
.padding([4, 12])
|
||||
.width(Fill);
|
||||
let item = |label: &'static str, msg: Option<Message>| -> Element<'static, Message> {
|
||||
let enabled = msg.is_some();
|
||||
|
||||
let content = container(text(label).size(12))
|
||||
.padding([4, 12])
|
||||
.width(Fill)
|
||||
.style(move |theme: &Theme| {
|
||||
let palette = theme.palette();
|
||||
|
||||
container::Style {
|
||||
text_color: Some(if enabled {
|
||||
palette.background.base.text
|
||||
} else {
|
||||
palette.background.base.text.scale_alpha(0.42)
|
||||
}),
|
||||
..Default::default()
|
||||
}
|
||||
});
|
||||
|
||||
if let Some(msg) = msg {
|
||||
item = item.on_press(msg);
|
||||
mouse_area(content)
|
||||
.on_press(msg)
|
||||
.interaction(iced::mouse::Interaction::Pointer)
|
||||
.into()
|
||||
} else {
|
||||
content.into()
|
||||
}
|
||||
item
|
||||
};
|
||||
|
||||
let mut menu = column![
|
||||
|
||||
+17
-12
@@ -850,21 +850,26 @@ fn osnap_btn<'a>(
|
||||
// ── Helpers ───────────────────────────────────────────────────────────────
|
||||
|
||||
fn layout_tab_context_menu(name: String) -> Element<'static, Message> {
|
||||
let item = |label: std::borrow::Cow<'static, str>, msg: Message| {
|
||||
button(text(label).size(12))
|
||||
.on_press(msg)
|
||||
.style(button::subtle)
|
||||
let rename = mouse_area(
|
||||
container(text(t!("Rename")).size(12))
|
||||
.padding([4, 12])
|
||||
.width(Length::Fill)
|
||||
};
|
||||
.width(Length::Fill),
|
||||
)
|
||||
.on_press(Message::LayoutRenameStart(name.clone()))
|
||||
.interaction(iced::mouse::Interaction::Pointer);
|
||||
|
||||
let delete = mouse_area(
|
||||
container(text(t!("Delete")).size(12))
|
||||
.padding([4, 12])
|
||||
.width(Length::Fill),
|
||||
)
|
||||
.on_press(Message::LayoutDelete(name))
|
||||
.interaction(iced::mouse::Interaction::Pointer);
|
||||
|
||||
container(
|
||||
column![
|
||||
item(t!("Rename"), Message::LayoutRenameStart(name.clone())),
|
||||
item(t!("Delete"), Message::LayoutDelete(name)),
|
||||
]
|
||||
.spacing(0)
|
||||
.width(160),
|
||||
column![rename, delete]
|
||||
.spacing(0)
|
||||
.width(160),
|
||||
)
|
||||
.style(container::bordered_box)
|
||||
.padding([4, 0])
|
||||
|
||||
Reference in new issue
Block a user