Skip to content
Snippets Groups Projects
Select Git revision
  • e64456a9fe12d5453714f33e54d564fbbf9e30aa
  • master default protected
  • 46-upgrade-framework-and-dependencies
  • 29-add-difficulty-level-parameter
  • 23-improve-app-metadata
  • 3-fix-layout-on-orientation-change
  • Release_1.9.0_41 protected
  • Release_1.8.2_40 protected
  • Release_1.8.1_39 protected
  • Release_1.8.0_38 protected
  • Release_1.7.0_37 protected
  • Release_1.6.0_36 protected
  • Release_1.5.0_35 protected
  • Release_1.4.2_34 protected
  • Release_1.4.1_33 protected
  • Release_1.4.0_32 protected
  • Release_1.3.0_31 protected
  • Release_1.2.1_30 protected
  • Release_1.2.0_29 protected
  • Release_1.1.1_28 protected
  • Release_1.1.0_27 protected
  • Release_1.0.25_26 protected
  • Release_1.0.24_25 protected
  • Release_1.0.23_24 protected
  • Release_1.0.22_23 protected
  • Release_1.0.21_22 protected
26 results

global_app_bar.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;