43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:flutter/material.dart';
 | |
| 
 | |
| extension BuildContextX on BuildContext {
 | |
|   /// A convenient way to access [ThemeData.colorScheme] of the current context.
 | |
|   ///
 | |
|   /// This also prevents confusion with a bunch of other properties of [ThemeData]
 | |
|   /// that are less commonly used.
 | |
|   ColorScheme get colorScheme => Theme.of(this).colorScheme;
 | |
| 
 | |
|   /// A convenient way to access [ThemeData.textTheme] of the current context.
 | |
|   ///
 | |
|   /// This also prevents confusion with a bunch of other properties of [ThemeData]
 | |
|   /// that are less commonly used.
 | |
|   TextTheme get textTheme => Theme.of(this).textTheme;
 | |
| 
 | |
|   /// Shows a floating snack bar with text as its content.
 | |
|   ScaffoldFeatureController<SnackBar, SnackBarClosedReason> showTextSnackBar(
 | |
|     String text, {
 | |
|     Duration? duration,
 | |
|   }) => ScaffoldMessenger.of(this).showSnackBar(
 | |
|     SnackBar(
 | |
|       behavior: SnackBarBehavior.floating,
 | |
|       content: Text(text),
 | |
|       duration: duration ?? Duration(milliseconds: 4000),
 | |
|     ),
 | |
|   );
 | |
| 
 | |
|   void showAppLicensePage() => showLicensePage(
 | |
|     context: this,
 | |
|     useRootNavigator: true,
 | |
|     applicationName: 'MoneyMgr',
 | |
|     applicationLegalese: '(c) Pierre HUBERT 2025 - ${DateTime.now().year}',
 | |
|   );
 | |
| }
 | |
| 
 | |
| extension ThemeModeX on ThemeMode {
 | |
|   String get label => switch (this) {
 | |
|     ThemeMode.system => 'System',
 | |
|     ThemeMode.light => 'Light',
 | |
|     ThemeMode.dark => 'Dark',
 | |
|   };
 | |
| }
 |