Skip to content
Snippets Groups Projects
Commit eb9c090b authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '5-add-gamebutton-widgets' into 'master'

Resolve "Add GameButton widgets"

Closes #5

See merge request !6
parents b24e16ca 8f23c0a3
No related branches found
No related tags found
1 merge request!6Resolve "Add GameButton widgets"
Pipeline #7001 passed
## 0.4.0
- Add activity actions buttons
## 0.3.0
- Fix font assets path
......
......@@ -13,6 +13,11 @@ export 'widgets/show_error.dart' show ShowErrorWidget;
export 'widgets/styled_button.dart' show StyledButton;
export 'widgets/styled_container.dart' show StyledContainer;
export 'widgets/activity/button_delete_saved_activity.dart' show ActivityButtonDeleteSaved;
export 'widgets/activity/button_quit_activity.dart' show ActivityButtonQuit;
export 'widgets/activity/button_resume_saved_activity.dart' show ActivityButtonResumeSaved;
export 'widgets/activity/button_start_new_activity.dart' show ActivityButtonStartNew;
export 'settings/application_settings_form.dart' show ApplicationSettingsForm;
export 'settings/application_settings_theme_card.dart' show ApplicationSettingsThemeModeCard;
export 'settings/application_theme_mode_cubit.dart'
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:flutter_custom_toolbox/settings/application_settings_theme_card.dart';
class ApplicationSettingsForm extends StatefulWidget {
const ApplicationSettingsForm({super.key});
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:flutter_custom_toolbox/settings/application_theme_mode_cubit.dart';
class ApplicationSettingsThemeModeCard extends StatelessWidget {
const ApplicationSettingsThemeModeCard({
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
class ActivityButtonDeleteSaved extends StatelessWidget {
const ActivityButtonDeleteSaved({
super.key,
required this.onPressed,
this.onLongPress,
});
final VoidCallback? onPressed;
final VoidCallback? onLongPress;
@override
Widget build(BuildContext context) {
return StyledButton.icon(
color: Colors.grey,
onPressed: onPressed,
onLongPress: onLongPress,
icon: const Icon(UniconsLine.trash_alt),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
class ActivityButtonQuit extends StatelessWidget {
const ActivityButtonQuit({
super.key,
required this.onPressed,
this.onLongPress,
});
final VoidCallback? onPressed;
final VoidCallback? onLongPress;
@override
Widget build(BuildContext context) {
return StyledButton.icon(
color: Colors.red,
onPressed: onPressed,
onLongPress: onLongPress,
icon: const Icon(UniconsLine.play),
quarterTurns: 2,
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
class ActivityButtonResumeSaved extends StatelessWidget {
const ActivityButtonResumeSaved({
super.key,
required this.onPressed,
this.onLongPress,
});
final VoidCallback? onPressed;
final VoidCallback? onLongPress;
@override
Widget build(BuildContext context) {
return StyledButton.icon(
color: Colors.blue,
onPressed: onPressed,
onLongPress: onLongPress,
icon: const Icon(UniconsLine.skip_forward_alt),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
class ActivityButtonStartNew extends StatelessWidget {
const ActivityButtonStartNew({
super.key,
required this.onPressed,
this.onLongPress,
});
final VoidCallback? onPressed;
final VoidCallback? onLongPress;
@override
Widget build(BuildContext context) {
return StyledButton.icon(
color: Colors.blue,
onPressed: onPressed,
onLongPress: onLongPress,
icon: const Icon(UniconsLine.play),
);
}
}
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:auto_size_text/auto_size_text.dart';
......@@ -71,38 +73,57 @@ class StyledButton extends StatelessWidget {
VoidCallback? onLongPress,
required Icon icon,
required Color color,
required double iconSize,
double? iconSize,
int quarterTurns = 0,
}) {
final List<Shadow> shadows = [
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(2, 2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(2, -2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(-2, 2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(-2, -2),
),
];
Widget child = iconSize != null
? Icon(
icon.icon,
color: icon.color ?? color.darken(60),
size: iconSize,
shadows: shadows,
)
: LayoutBuilder(
builder: (context, constraint) {
return Icon(
icon.icon,
color: icon.color ?? color.darken(60),
size: min(constraint.biggest.height, constraint.biggest.width),
shadows: shadows,
);
},
);
return StyledButton(
color: color,
onPressed: onPressed,
onLongPress: onLongPress,
child: Icon(
icon.icon,
color: icon.color ?? color.darken(60),
size: iconSize,
shadows: [
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(2, 2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(2, -2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(-2, 2),
),
Shadow(
blurRadius: 5.0,
color: color.lighten(60),
offset: const Offset(-2, -2),
),
],
child: RotatedBox(
quarterTurns: quarterTurns,
child: child,
),
);
}
......
......@@ -3,7 +3,7 @@ description: "Flutter custom toolbox for org.benoitharrault.* projects."
publish_to: "none"
version: 0.3.0
version: 0.4.0
homepage: https://git.harrault.fr/android/flutter-toolbox
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment