Skip to content

☂️ Menu bars and cascading menus #23600

Description

@gspencergoog

For some embeddings (macOS, Windows, Linux, ChromeOS, Fuschia), an application-level menu bar widget is necessary. It should be able to display keyboard accelerators, menu item separators, and have cascading menus.

The design doc is here: https://flutter.dev/go/cascading-menus
The draft Framework PR is here: #109179
The draft Engine PR is here: flutter-team-archive/engine#31124
This PR is part of the overall effort to support Material 3 - #91605

The current burndown list for implementing the Material menu bar:

  • Basic prototype, menus can be defined, open and close.
  • Design doc update
  • Convert overlay usage into regular Stack
  • Figure out how to add all menus offstage initially to allow activator registration.
  • Hover support
  • Activator support
  • Keyboard navigation support
  • RTL support
  • Visual Density support
  • Platform system menu plugin support for macOS
  • Platform default menu item support (basic)
  • Screen placement and scrolling on small windows.
  • Confirm semantics support (with tests) for cascading menus and menubars #127617
  • unit tests x1000
  • API docs update
  • Final formatting pass
  • Add examples and example tests
  • Connect activators and keyboard support with Shortcuts and Actions?

Activity

  1. added
    frameworkflutter/packages/flutter repository. See also f: labels.
    on Dec 11, 2018
  2. added this to the milestone on Dec 11, 2018
  3. stuartmorgan-g commented on Mar 12, 2019

    @stuartmorgan-g
    Contributor

    FDE has a plugin that partially implements this (accelerators aren't implemented yet, but separators and nesting are). We could potentially use that as a starting point for something that's in-Framework.

  4. changed the title [-]Menu bar support[/-] [+]Menu bar support for desktop platforms.[/+] on Dec 4, 2019
  5. removed their assignment
    on Jan 23, 2020
  6. added
    P2Important issues not at the top of the work list
    on May 29, 2020
  7. removed this from the milestone on Aug 17, 2020
  8. self-assigned this
    on Feb 23, 2022
  9. 4 remaining items

  10. moved this to Todo in Material 3on May 23, 2022
  11. moved this from Todo to In Progress in Material 3on May 23, 2022
  12. moved this to In Progress in Flutter Desktopon May 24, 2022
  13. gspencergoog commented on Oct 3, 2022

    @gspencergoog
    ContributorAuthor

    The main implementation for menus has been committed. Check out the MenuAnchor and MenuBar classes.

    There are still some tasks to do here (accelerators, some theme work, etc.), but the basics work.

  14. gspencergoog commented on Oct 3, 2022

    @gspencergoog
    ContributorAuthor

    We're also planning to do some evaluation of the various different menu types and themes to see where we can merge them to share implementations, etc.

  15. cmedamine commented on Oct 7, 2022

    @cmedamine

    @gspencergoog are these native-like electron js menus?

  16. gspencergoog commented on Oct 7, 2022

    @gspencergoog
    ContributorAuthor

    @cmedamine These are Material-style menus rendered by Flutter. I've never used Electron, so I'm not sure if they're comparable, but probably.

  17. gspencergoog commented on Jun 9, 2023

    @gspencergoog
    ContributorAuthor

    Closing this umbrella issue because menus are now implemented. We'll file specific issues for any bugs or missing features.

  18. moved this from 🚧 In Progress to ✅ Done in Material 3on Jun 9, 2023
  19. moved this from In Progress to Done in Flutter Desktopon Jun 9, 2023
  20. github-actions commented on Jun 23, 2023

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  21. locked as resolved and limited conversation to collaborators on Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: desktopRunning on desktopc: new featureNothing broken; request for a new capabilitycustomer: fuchsiaframeworkflutter/packages/flutter repository. See also f: labels.p: material_uimaterial_ui package in flutter/packagesplatform-chromebookChromebook applications specifically

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions