Skip to content

Commit e7664b7

Browse files
committed
Add submenu to tray icon context menu example
Introduces a submenu with multiple items to the tray icon context menu in the example app. Event listeners for submenu open/close and item clicks are added to update the history log. Also updates the cnativeapi submodule reference.
1 parent 88fa78d commit e7664b7

2 files changed

Lines changed: 42 additions & 1 deletion

File tree

examples/tray_icon_example/lib/main.dart

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,45 @@ class _TrayIconExamplePageState extends State<TrayIconExamplePage> {
163163
final separatorItem = MenuItem('', MenuItemType.separator);
164164
final toggleItem = MenuItem('Toggle Visibility');
165165
final separatorItem2 = MenuItem('', MenuItemType.separator);
166+
167+
// Create submenu
168+
final submenuMenu = Menu();
169+
final submenuItem1 = MenuItem('Submenu Item 1');
170+
final submenuItem2 = MenuItem('Submenu Item 2');
171+
final submenuItem3 = MenuItem('Submenu Item 3');
172+
173+
// Add submenu items
174+
submenuMenu.addItem(submenuItem1);
175+
submenuMenu.addItem(submenuItem2);
176+
submenuMenu.addItem(submenuItem3);
177+
178+
// Create submenu menu item
179+
final submenuMenuItem = MenuItem('More Options', MenuItemType.submenu);
180+
submenuMenuItem.submenu = submenuMenu;
181+
182+
// Listen to submenu open/close events
183+
submenuMenuItem.on<MenuItemSubmenuOpenedEvent>((event) {
184+
_addToHistory('Submenu opened for tray icon ${trayIcon.id}');
185+
});
186+
187+
submenuMenuItem.on<MenuItemSubmenuClosedEvent>((event) {
188+
_addToHistory('Submenu closed for tray icon ${trayIcon.id}');
189+
});
190+
191+
// Add event listeners for submenu items
192+
submenuItem1.on<MenuItemClickedEvent>((event) {
193+
_addToHistory('Submenu Item 1 clicked for tray icon ${trayIcon.id}');
194+
});
195+
196+
submenuItem2.on<MenuItemClickedEvent>((event) {
197+
_addToHistory('Submenu Item 2 clicked for tray icon ${trayIcon.id}');
198+
});
199+
200+
submenuItem3.on<MenuItemClickedEvent>((event) {
201+
_addToHistory('Submenu Item 3 clicked for tray icon ${trayIcon.id}');
202+
});
203+
204+
final separatorItem3 = MenuItem('', MenuItemType.separator);
166205
final aboutItem = MenuItem('About');
167206
final quitItem = MenuItem('Quit');
168207

@@ -199,6 +238,8 @@ class _TrayIconExamplePageState extends State<TrayIconExamplePage> {
199238
contextMenu.addItem(separatorItem);
200239
contextMenu.addItem(toggleItem);
201240
contextMenu.addItem(separatorItem2);
241+
contextMenu.addItem(submenuMenuItem);
242+
contextMenu.addItem(separatorItem3);
202243
contextMenu.addItem(aboutItem);
203244
contextMenu.addItem(quitItem);
204245

0 commit comments

Comments
 (0)