Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement command bars and dynamic overflow layout #232

Merged
merged 15 commits into from
Mar 21, 2022

Commits on Mar 19, 2022

  1. Additional TreeView scrolling properties

    * Need to be able to control whether TreeView uses the primary
      ScrollController or uses a custom scroll controller
    * If TreeView has shrinkWrap set, then do not use the primary scroll
      controller
    
    These changes are needed so that if a parent ListView contains a
    TreeView and the ListView has a custom scroll controller, then we
    can avoid using the primary scroll controller and avoid exceptions
    like "The provided ScrollController is currently attached to more
    than one ScrollPosition".
    klondikedragon committed Mar 19, 2022
    Configuration menu
    Copy the full SHA
    23b7932 View commit details
    Browse the repository at this point in the history
  2. HorizontalScrollView widget

    A variant of SingleChildScrollView that provides horizontal scrolling
    via the mouse wheel.
    
    This is needed due to changes in Flutter 2.5, where the mouse can no
    longer be used to drag and scroll horizontally on web/desktop platforms.
    
    https://docs.flutter.dev/release/breaking-changes/default-scroll-behavior-drag
    klondikedragon committed Mar 19, 2022
    Configuration menu
    Copy the full SHA
    f5afb7c View commit details
    Browse the repository at this point in the history
  3. Basic CommandBar widget with examples

    A `CommandBar` control provides quick access to common tasks. This
    could be application-level or page-level commands.
    
    See https://docs.microsoft.com/en-us/windows/apps/design/controls/command-bar
    
    The current implementation does not implement the open/closed state,
    nor does it implement the secondary commands "more" button with dynamic
    overflow of items into the secondary commands menu.
    klondikedragon committed Mar 19, 2022
    Configuration menu
    Copy the full SHA
    489b464 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7ccb2ef View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8daac62 View commit details
    Browse the repository at this point in the history
  6. Add CommandBarSeparator

    Also changed cross-axis alignment for items within a CommandBar to be
    center-aligned. Needed so that items will be properly vertically aligned
    (including separators) if items are of different heights.
    klondikedragon committed Mar 19, 2022
    Configuration menu
    Copy the full SHA
    8883cff View commit details
    Browse the repository at this point in the history
  7. Add primary area to CommandBar with auto-compact

    * A CommandBar now takes a list of primary and secondary command bar
      items. The secondary command bar items do not yet appear anywhere.
    * The primary command bar items are intended to be displayed on the
      horizontal area of the command bar.
    * Conceptually similar to PaneItem, CommandBarItem is now given a
      "display mode" when building the widget. The display mode indicates
      if the item is being rendered on the primary (horizontal) area
      (and if it should display in "compact" mode) or the secondary
      (flyout menu when "more" button is pushed) area.
    * A CommandBar can be given a `compcatBreakpointWidth` that indicates
      that if the widget is rendered with a smaller width, then it should
      render all of the items on the primary area in "compact" mode.
    * Foundation is laid for supporting the secondary area and an overflow
      behavior mode of "dynamic", but is not yet implemented.
    klondikedragon committed Mar 19, 2022
    Configuration menu
    Copy the full SHA
    7c93f28 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d0dee4c View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2022

  1. DynamicOverflow widget

    Similar to Wrap, but only displays widgets on a single run, and then
    hides widgets that would have overflown. If widgets are hidden, then it
    will display the specified "overflow widget".
    
    This is useful to implement the dynamic overflow mode of command bars.
    
    It could also be useful if a vertical nav bar wanted to implement a "more"
    button instead of vertical scrolling.
    klondikedragon committed Mar 20, 2022
    Configuration menu
    Copy the full SHA
    7aa468b View commit details
    Browse the repository at this point in the history
  2. Dynamic overflow mode for command bars

    Also add mainAxisAlignment and crossAxisAlignment fields
    klondikedragon committed Mar 20, 2022
    Configuration menu
    Copy the full SHA
    ca437e8 View commit details
    Browse the repository at this point in the history
  3. Additional command bar examples

    * Illustrates right-alignment and dynamic overflow modes.
    * Moves command bar examples into a new navbar pane to avoid clutter.
    klondikedragon committed Mar 20, 2022
    Configuration menu
    Copy the full SHA
    704d7ad View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    423f01f View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2022

  1. Configuration menu
    Copy the full SHA
    be423e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8265832 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2e44030 View commit details
    Browse the repository at this point in the history