Skip to content
Snippets Groups Projects
Select Git revision
  • 1f3741b4fe1d805eb05103ea5506876005ed072f
  • master default protected
  • 21-add-onlongpress-with-popup-on-parameters
  • 23-center-vertically-buttons
  • 30-highlight-bin-when-selecting-disabled-item
  • 1.0.7 protected
  • 1.0.6 protected
  • 1.0.5 protected
  • 1.0.4 protected
  • 1.0.3 protected
  • 1.0.2 protected
  • 1.0.0 protected
  • 0.9.1 protected
  • 0.9.0 protected
  • 0.8.4 protected
  • 0.8.3 protected
  • 0.8.2 protected
  • 0.8.1 protected
  • 0.8.0 protected
  • 0.7.0 protected
  • 0.6.1 protected
  • 0.6.0 protected
  • 0.5.0 protected
  • 0.4.0 protected
  • 0.3.0 protected
25 results

application_navigation_definition.dart

Blame
  • application_navigation_definition.dart 3.22 KiB
    import 'package:flutter/material.dart';
    
    import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
    
    /// A screen item,
    ///
    /// Normalized screens are: "activity", "settings" and "about".
    ///
    /// These are set in [ApplicationNavigation] with
    /// - [ApplicationNavigation.screenActivity]
    /// - [ApplicationNavigation.screenSettings]
    /// - [ApplicationNavigation.screenAbout]
    ///
    class ScreenItem {
      final String code;
      final Icon icon;
      final Widget Function({required ApplicationConfigDefinition appConfig}) screen;
    
      const ScreenItem({
        required this.code,
        required this.icon,
        required this.screen,
      });
    }
    
    /// A page in [ScreenItem] given in [ApplicationNavigation.screenActivity]
    ///
    /// These are set in [ApplicationNavigation] with
    /// [ApplicationNavigation.activityPages].
    ///
    class ActivityPageItem {
      final String code;
      final Icon? icon;
      final Widget Function({required ApplicationConfigDefinition appConfig}) builder;
    
      const ActivityPageItem({
        required this.code,
        this.icon,
        required this.builder,
      });
    
      factory ActivityPageItem.empty() {
        return ActivityPageItem(
          code: '',
          builder: ({required ApplicationConfigDefinition appConfig}) => Text(''),
        );
      }
    }
    
    /// Custom AppBar configuration
    ///
    class AppBarConfiguration {
      final bool? hideApplicationTitle;
      final bool? pushQuitActivityButtonLeft;
      final bool? hideQuitActivityButton;
      final List<AppBarButton> Function(BuildContext context)? topBarButtonsBuilder;
    
      const AppBarConfiguration({
        this.hideApplicationTitle = false,
        this.pushQuitActivityButtonLeft = false,
        this.hideQuitActivityButton = false,
        this.topBarButtonsBuilder,
      });
    }
    
    /// Custom AppBar button (will generate a widget [IconButton])
    ///
    class AppBarButton {
      final Icon icon;
      final Function(BuildContext context)? onPressed;