@@ -149,54 +149,70 @@ To create a multi-level menu, you can add some submenus to the menu item:
149149<TabItem label = " JavaScript" >
150150
151151``` javascript
152- #! [cfg_attr (not (debug_assertions), windows_subsystem = " windows" )]
153-
154- use tauri:: {image:: Image, menu:: {CheckMenuItemBuilder, IconMenuItemBuilder, MenuBuilder, SubmenuBuilder}};
155-
156- fn main () {
157- tauri:: Builder:: default ()
158- .setup (| app| {
159- let text_menu = SubmenuBuilder:: new (app, " File" )
160- .text (" open" , " Open" )
161- .text (" quit" , " Quit" )
162- .build ()? ;
163-
164- let lang_str = " en" ;
165- let check_sub_item_1 = CheckMenuItemBuilder: : new (" English" )
166- .id (" en" )
167- .checked (lang_str == " en" )
168- .build (app)? ;
169-
170- let check_sub_item_2 = CheckMenuItemBuilder: : new (" Chinese" )
171- .id (" en" )
172- .checked (lang_str == " en" )
173- .enabled (false )
174- .build (app)? ;
175-
176- let icon_image = Image: : from_bytes (include_bytes! (" ../icons/icon.png" )).unwrap ();
177-
178- let icon_item = IconMenuItemBuilder:: new (" icon" )
179- .icon (icon_image)
180- .build (app)? ;
181-
182- let check_menus = SubmenuBuilder: : new (app, " language" )
183- .item (& check_sub_item_1)
184- .item (& check_sub_item_2)
185- .build ()? ;
152+ import { Menu , MenuItem , Submenu } from ' @tauri-apps/api/menu' ;
186153
154+ const fileSubmenu = await Submenu .new ({
155+ text: ' File' ,
156+ items: [
157+ await MenuItem .new ({
158+ id: ' new' ,
159+ text: ' New' ,
160+ action : () => {
161+ console .log (' New clicked' );
162+ },
163+ }),
164+ await MenuItem .new ({
165+ id: ' open' ,
166+ text: ' Open' ,
167+ action : () => {
168+ console .log (' Open clicked' );
169+ },
170+ }),
171+ await MenuItem .new ({
172+ id: ' save_as' ,
173+ text: ' Save As...' ,
174+ action : () => {
175+ console .log (' Save As clicked' );
176+ },
177+ }),
178+ ],
179+ });
187180
188- let menu = MenuBuilder: : new (app)
189- .items (& [& text_menu, & check_menus, & icon_item])
190- .build ()? ;
181+ const editSubmenu = await Submenu .new ({
182+ text: ' Edit' ,
183+ items: [
184+ await MenuItem .new ({
185+ id: ' undo' ,
186+ text: ' Undo' ,
187+ action : () => {
188+ console .log (' Undo clicked' );
189+ },
190+ }),
191+ await MenuItem .new ({
192+ id: ' redo' ,
193+ text: ' Redo' ,
194+ action : () => {
195+ console .log (' Redo clicked' );
196+ },
197+ }),
198+ ],
199+ });
191200
192- app .set_menu (menu)? ;
201+ const menu = await Menu .new ({
202+ items: [
203+ fileSubmenu,
204+ editSubmenu,
205+ await MenuItem .new ({
206+ id: ' quit' ,
207+ text: ' Quit' ,
208+ action : () => {
209+ console .log (' Quit pressed' );
210+ },
211+ }),
212+ ],
213+ });
193214
194- print! (" Hello from setup" );
195- Ok (())
196- })
197- .run (tauri:: generate_context! ())
198- .expect (" error while running tauri application" );
199- }
215+ menu .setAsAppMenu ();
200216```
201217
202218</TabItem >
0 commit comments