diff --git a/ui-libraries/material/docs/src/content/collections/structs/MenuItem.md b/ui-libraries/material/docs/src/content/collections/structs/MenuItem.md
new file mode 100644
index 000000000..208b46bd3
--- /dev/null
+++ b/ui-libraries/material/docs/src/content/collections/structs/MenuItem.md
@@ -0,0 +1,14 @@
+---
+
+title: MenuItem
+description: MenuItem content
+---
+
+`MenuItem`
+
+This structure represents a MenuItem with an icon, text, trailing text, and enabled state.
+
+- **`icon`** (_image_): The icon to display in the item.
+- **`text`** (_string_): The text to display in the item.
+- **`trailing_text`** (_string_): The trailing text to display in the item.
+- **`enabled`** (_bool_): Whether the item is enabled.
diff --git a/ui-libraries/material/docs/src/content/docs/components/menu.mdx b/ui-libraries/material/docs/src/content/docs/components/popup_menu.mdx
similarity index 81%
rename from ui-libraries/material/docs/src/content/docs/components/menu.mdx
rename to ui-libraries/material/docs/src/content/docs/components/popup_menu.mdx
index 6c1f3b9b4..b00b73d2a 100644
--- a/ui-libraries/material/docs/src/content/docs/components/menu.mdx
+++ b/ui-libraries/material/docs/src/content/docs/components/popup_menu.mdx
@@ -1,7 +1,7 @@
---
-title: Menu
-description: Menu API.
+title: PopupMenu
+description: PopupMenu API.
---
import CodeSnippetMD from '/src/components/CodeSnippetMD.astro';
@@ -9,12 +9,12 @@ import SlintProperty from '/src/components/SlintProperty.astro';
```slint
-import { Menu } from "./material.slint";
+import { PopupMenu } from "./material.slint";
export component Example inherits Window {
width: 400px;
height: 300px;
background: transparent;
- Menu {
+ PopupMenu {
width: 280px;
height: parent.height;
items: [
@@ -27,7 +27,7 @@ export component Example inherits Window {
```
-A `Menu` display a list of choices on a temporary surface.
+A `PopupMenu` to display a list of choices on a temporary surface.
## Properties
@@ -38,5 +38,5 @@ An array of menu items, each containing an icon, a text, and a trailing text.
## Callbacks
-### item_clicked(index: int)
+### activated(index: int)
Invoked when a menu item is clicked
diff --git a/ui-libraries/material/docs/src/content/docs/reference/global-structs-enums.mdx b/ui-libraries/material/docs/src/content/docs/reference/global-structs-enums.mdx
index 27719bae4..e859694b7 100644
--- a/ui-libraries/material/docs/src/content/docs/reference/global-structs-enums.mdx
+++ b/ui-libraries/material/docs/src/content/docs/reference/global-structs-enums.mdx
@@ -7,6 +7,7 @@ import IconButtonItem from "../../collections/structs/IconButtonItem.md"
import ListItem from "../../collections/structs/ListItem.md"
import SegmentedItem from "../../collections/structs/SegmentedItem.md"
import Time from "../../collections/structs/Time.md"
+import MenuItem from "../../collections/structs/MenuItem.md"
import NavigationItem from "../../collections/structs/NavigationItem.md"
import NavigationGroup from "../../collections/structs/NavigationGroup.md"
@@ -23,6 +24,9 @@ import ScrollBarPolicy from "../../collections/enums/ScrollBarPolicy.md"
### ListItem
+### MenuItem
+
+
### NavigationItem
diff --git a/ui-libraries/material/examples/gallery/ui/views/main_view.slint b/ui-libraries/material/examples/gallery/ui/views/main_view.slint
index 45d658191..a033b36c7 100644
--- a/ui-libraries/material/examples/gallery/ui/views/main_view.slint
+++ b/ui-libraries/material/examples/gallery/ui/views/main_view.slint
@@ -15,7 +15,7 @@ import {
NavigationItem,
NavigationBar,
SmallAppBar,
- Menu,
+ PopupMenu,
MenuItem,
MaterialStyleMetrics
} from "../../../../material.slint";
@@ -71,12 +71,12 @@ export component MainView {
}
}
- color_menu := Menu {
+ color_menu := PopupMenu {
x: root.width - MaterialStyleMetrics.size_200 - MaterialStyleMetrics.padding_16;
y: app_bar.height / 2;
items: MainViewAdapter.palettes;
- item_clicked(index) => {
+ activated(index) => {
MainViewAdapter.load_palette(index);
color_menu.close();
}
diff --git a/ui-libraries/material/examples/gallery/ui/views/navigation_view.slint b/ui-libraries/material/examples/gallery/ui/views/navigation_view.slint
index 0b5d69df0..dd2e6cb8a 100644
--- a/ui-libraries/material/examples/gallery/ui/views/navigation_view.slint
+++ b/ui-libraries/material/examples/gallery/ui/views/navigation_view.slint
@@ -31,7 +31,7 @@ import {
Slider,
TextField,
RadioButtonTile,
- Menu,
+ PopupMenu,
DropDownMenu,
MenuItem,
DatePickerPopup
@@ -439,7 +439,7 @@ export component NavigationView {
}
- menu := Menu {
+ menu := PopupMenu {
x: menu_button.x + menu_button.width / 2;
y: menu_button.y + menu_button.height / 2;
items: [
diff --git a/ui-libraries/material/material.slint b/ui-libraries/material/material.slint
index 6dee0a3fd..e2417a586 100644
--- a/ui-libraries/material/material.slint
+++ b/ui-libraries/material/material.slint
@@ -30,7 +30,7 @@ export { Avatar, ListTile } from "./ui/components/list.slint";
export { ListView } from "./ui/components/list_view.slint";
export { MaterialText } from "./ui/components/material_text.slint";
export { MaterialWindow, MaterialWindowAdapter } from "./ui/components/material_window.slint";
-export { Menu } from "./ui/components/menu.slint";
+export { PopupMenu } from "./ui/components/menu.slint";
export { NavigationBar } from "./ui/components/navigation_bar.slint";
export { NavigationDrawer, ModalNavigationDrawer } from "./ui/components/navigation_drawer.slint";
export { NavigationRail } from "./ui/components/navigation_rail.slint";
diff --git a/ui-libraries/material/ui/components/drop_down_menu.slint b/ui-libraries/material/ui/components/drop_down_menu.slint
index a7bad0fa3..7f961015d 100644
--- a/ui-libraries/material/ui/components/drop_down_menu.slint
+++ b/ui-libraries/material/ui/components/drop_down_menu.slint
@@ -93,7 +93,7 @@ export component DropDownMenu {
current_index: root.current_index;
items: root.items;
- item_clicked(index) => {
+ activated(index) => {
root.update_selection(index);
}
}
diff --git a/ui-libraries/material/ui/components/menu.slint b/ui-libraries/material/ui/components/menu.slint
index ec3d0e9df..5fa23be1e 100644
--- a/ui-libraries/material/ui/components/menu.slint
+++ b/ui-libraries/material/ui/components/menu.slint
@@ -82,7 +82,7 @@ export component MenuInner {
in property <[MenuItem]> items;
in_out property current_index: -1;
- callback item_clicked(index: int);
+ callback activated(index: int);
// used to fix clipping of shadows
out property elevation: 2;
@@ -107,17 +107,17 @@ export component MenuInner {
selected: index == root.current_index;
clicked => {
- root.item_clicked(index);
+ root.activated(index);
}
}
}
}
}
-export component Menu inherits PopupWindow {
+export component PopupMenu inherits PopupWindow {
in property <[MenuItem]> items;
- callback item_clicked(index: int);
+ callback activated(index: int);
width: MaterialStyleMetrics.size_200;
close_policy: close_on_click_outside;
@@ -128,8 +128,8 @@ export component Menu inherits PopupWindow {
inner := MenuInner {
items: root.items;
- item_clicked(index) => {
- root.item_clicked(index);
+ activated(index) => {
+ root.activated(index);
}
}
}