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

Merge branch '51-use-activity-buttons-widgets-from-flutter_custom_toolbox' into 'master'

Resolve "Use activity buttons widgets from flutter_custom_toolbox"

Closes #51

See merge request !49
parents 1532029e 3418a6b3
No related branches found
No related tags found
1 merge request!49Resolve "Use activity buttons widgets from flutter_custom_toolbox"
Pipeline #7011 passed
Showing
with 88 additions and 184 deletions
assets/skins/default_img1.png

3.33 KiB | W: | H:

assets/skins/default_img1.png

3.33 KiB | W: | H:

assets/skins/default_img1.png
assets/skins/default_img1.png
assets/skins/default_img1.png
assets/skins/default_img1.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img2.png

5.65 KiB | W: | H:

assets/skins/default_img2.png

5.65 KiB | W: | H:

assets/skins/default_img2.png
assets/skins/default_img2.png
assets/skins/default_img2.png
assets/skins/default_img2.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img3.png

8.48 KiB | W: | H:

assets/skins/default_img3.png

8.48 KiB | W: | H:

assets/skins/default_img3.png
assets/skins/default_img3.png
assets/skins/default_img3.png
assets/skins/default_img3.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img4.png

9.61 KiB | W: | H:

assets/skins/default_img4.png

9.61 KiB | W: | H:

assets/skins/default_img4.png
assets/skins/default_img4.png
assets/skins/default_img4.png
assets/skins/default_img4.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img5.png

10.3 KiB | W: | H:

assets/skins/default_img5.png

10.3 KiB | W: | H:

assets/skins/default_img5.png
assets/skins/default_img5.png
assets/skins/default_img5.png
assets/skins/default_img5.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img6.png

10.7 KiB | W: | H:

assets/skins/default_img6.png

10.7 KiB | W: | H:

assets/skins/default_img6.png
assets/skins/default_img6.png
assets/skins/default_img6.png
assets/skins/default_img6.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img7.png

11.1 KiB | W: | H:

assets/skins/default_img7.png

11.1 KiB | W: | H:

assets/skins/default_img7.png
assets/skins/default_img7.png
assets/skins/default_img7.png
assets/skins/default_img7.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img8.png

11.7 KiB | W: | H:

assets/skins/default_img8.png

11.7 KiB | W: | H:

assets/skins/default_img8.png
assets/skins/default_img8.png
assets/skins/default_img8.png
assets/skins/default_img8.png
  • 2-up
  • Swipe
  • Onion skin
assets/skins/default_img9.png

12.4 KiB | W: | H:

assets/skins/default_img9.png

12.4 KiB | W: | H:

assets/skins/default_img9.png
assets/skins/default_img9.png
assets/skins/default_img9.png
assets/skins/default_img9.png
  • 2-up
  • Swipe
  • Onion skin
assets/ui/button_back.png

2.37 KiB

assets/ui/button_delete_saved_game.png

7.65 KiB

assets/ui/button_resume_game.png

3.35 KiB

assets/ui/button_start.png

2.99 KiB

......@@ -22,17 +22,12 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
final List<Widget> menuActions = [];
if (currentActivity.isRunning && !currentActivity.isFinished) {
menuActions.add(StyledButton(
color: Colors.red,
menuActions.add(ActivityButtonQuit(
onPressed: () {},
onLongPress: () {
BlocProvider.of<ActivityCubit>(context).quitActivity();
BlocProvider.of<NavCubitPage>(context).goToPageHome();
},
child: const Image(
image: AssetImage('assets/ui/button_back.png'),
fit: BoxFit.fill,
),
));
} else {
if (pageIndex == Screen.indexActivity) {
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/common/cubit/nav/nav_cubit_pages.dart';
import 'package:hangman/common/ui/parameters/parameter_widget.dart';
import 'package:hangman/config/default_activity_settings.dart';
......@@ -9,9 +10,6 @@ import 'package:hangman/cubit/activity/activity_cubit.dart';
import 'package:hangman/cubit/settings/settings_activity_cubit.dart';
import 'package:hangman/cubit/settings/settings_global_cubit.dart';
import 'package:hangman/models/activity/activity.dart';
import 'package:hangman/ui/widgets/actions/button_delete_saved_game.dart';
import 'package:hangman/ui/widgets/actions/button_game_start_new.dart';
import 'package:hangman/ui/widgets/actions/button_resume_saved_game.dart';
class PageParameters extends StatelessWidget {
const PageParameters({super.key});
......@@ -20,13 +18,17 @@ class PageParameters extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocBuilder<ActivitySettingsCubit, ActivitySettingsState>(
builder: (BuildContext context, ActivitySettingsState activitySettingsState) {
return BlocBuilder<GlobalSettingsCubit, GlobalSettingsState>(
builder: (BuildContext context, GlobalSettingsState globalSettingsState) {
return BlocBuilder<ActivityCubit, ActivityState>(
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final List<Widget> lines = [];
// Game settings
// Activity settings
for (String code in DefaultActivitySettings.availableParameters) {
lines.add(Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -44,23 +46,40 @@ class PageParameters extends StatelessWidget {
));
if (currentActivity.canBeResumed == false) {
// Start new game
// Start new activity
lines.add(
const AspectRatio(
AspectRatio(
aspectRatio: 3,
child: StartNewGameButton(),
child: ActivityButtonStartNew(
onPressed: () {
BlocProvider.of<ActivityCubit>(context).startNewActivity(
activitySettings: activitySettingsState.settings,
globalSettings: globalSettingsState.settings,
);
BlocProvider.of<NavCubitPage>(context).goToPageGame();
},
),
),
);
} else {
// Resume game
lines.add(const AspectRatio(
// Resume activity
lines.add(AspectRatio(
aspectRatio: 3,
child: ResumeSavedGameButton(),
child: ActivityButtonResumeSaved(
onPressed: () {
BlocProvider.of<ActivityCubit>(context).resumeSavedActivity();
BlocProvider.of<NavCubitPage>(context).goToPageGame();
},
),
));
// Delete saved game
// Delete saved activity
lines.add(SizedBox.square(
dimension: MediaQuery.of(context).size.width / 5,
child: const DeleteSavedGameButton(),
child: ActivityButtonDeleteSaved(
onPressed: () {
BlocProvider.of<ActivityCubit>(context).deleteSavedActivity();
},
),
));
}
......@@ -84,6 +103,10 @@ class PageParameters extends StatelessWidget {
);
},
);
},
);
},
);
}
List<Widget> buildParametersLine({
......
......@@ -95,10 +95,6 @@ class MyApp extends StatelessWidget {
final List<String> assets = [];
const List<String> gameImages = [
'button_back',
'button_delete_saved_game',
'button_resume_game',
'button_start',
'game_fail',
'game_win',
'placeholder',
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/cubit/activity/activity_cubit.dart';
class DeleteSavedGameButton extends StatelessWidget {
const DeleteSavedGameButton({super.key});
@override
Widget build(BuildContext context) {
return StyledButton(
color: Colors.grey,
onPressed: () {
BlocProvider.of<ActivityCubit>(context).deleteSavedActivity();
},
child: const Image(
image: AssetImage('assets/ui/button_delete_saved_game.png'),
fit: BoxFit.fill,
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/common/cubit/nav/nav_cubit_pages.dart';
import 'package:hangman/cubit/activity/activity_cubit.dart';
class QuitGameButton extends StatelessWidget {
const QuitGameButton({super.key});
@override
Widget build(BuildContext context) {
return StyledButton(
color: Colors.red,
onPressed: () {
BlocProvider.of<ActivityCubit>(context).quitActivity();
BlocProvider.of<NavCubitPage>(context).goToPageHome();
},
child: const Image(
image: AssetImage('assets/ui/button_back.png'),
fit: BoxFit.fill,
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/common/cubit/nav/nav_cubit_pages.dart';
import 'package:hangman/cubit/activity/activity_cubit.dart';
import 'package:hangman/cubit/settings/settings_activity_cubit.dart';
import 'package:hangman/cubit/settings/settings_global_cubit.dart';
class StartNewGameButton extends StatelessWidget {
const StartNewGameButton({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<ActivitySettingsCubit, ActivitySettingsState>(
builder: (BuildContext context, ActivitySettingsState activitySettingsState) {
return BlocBuilder<GlobalSettingsCubit, GlobalSettingsState>(
builder: (BuildContext context, GlobalSettingsState globalSettingsState) {
return StyledButton(
color: Colors.blue,
onPressed: () {
BlocProvider.of<ActivityCubit>(context).startNewActivity(
activitySettings: activitySettingsState.settings,
globalSettings: globalSettingsState.settings,
);
BlocProvider.of<NavCubitPage>(context).goToPageGame();
},
child: const Image(
image: AssetImage('assets/ui/button_start.png'),
fit: BoxFit.fill,
),
);
},
);
},
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/common/cubit/nav/nav_cubit_pages.dart';
import 'package:hangman/cubit/activity/activity_cubit.dart';
class ResumeSavedGameButton extends StatelessWidget {
const ResumeSavedGameButton({super.key});
@override
Widget build(BuildContext context) {
return StyledButton(
color: Colors.blue,
onPressed: () {
BlocProvider.of<ActivityCubit>(context).resumeSavedActivity();
BlocProvider.of<NavCubitPage>(context).goToPageGame();
},
child: const Image(
image: AssetImage('assets/ui/button_resume_game.png'),
fit: BoxFit.fill,
),
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment