// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; /// Flutter code sample for [MenuAcceleratorLabel]. void main() => runApp(const MenuAcceleratorApp()); class MyMenuBar extends StatelessWidget { const MyMenuBar({super.key}); @override Widget build(BuildContext context) { return Column( children: [ Row( mainAxisSize: MainAxisSize.min, children: [ Expanded( child: MenuBar( children: [ SubmenuButton( menuChildren: [ MenuItemButton( onPressed: () { showAboutDialog( context: context, applicationName: 'MenuBar Sample', applicationVersion: '1.0.0', ); }, child: const MenuAcceleratorLabel('&About'), ), MenuItemButton( onPressed: () { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Saved!')), ); }, child: const MenuAcceleratorLabel('&Save'), ), MenuItemButton( onPressed: () { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Quit!')), ); }, child: const MenuAcceleratorLabel('&Quit'), ), ], child: const MenuAcceleratorLabel('&File'), ), SubmenuButton( menuChildren: [ MenuItemButton( onPressed: () { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Magnify!')), ); }, child: const MenuAcceleratorLabel('&Magnify'), ), MenuItemButton( onPressed: () { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Minify!')), ); }, child: const MenuAcceleratorLabel('Mi&nify'), ), ], child: const MenuAcceleratorLabel('&View'), ), ], ), ), ], ), Expanded( child: FlutterLogo( size: MediaQuery.of(context).size.shortestSide * 0.5, ), ), ], ); } } class MenuAcceleratorApp extends StatelessWidget { const MenuAcceleratorApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: Shortcuts( shortcuts: { const SingleActivator( LogicalKeyboardKey.keyT, control: true, ): VoidCallbackIntent(() { debugDumpApp(); }), }, child: const Scaffold(body: SafeArea(child: MyMenuBar())), ), ); } }