Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paintroid 451 : Flutter: advanced Options #54

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,4 @@ SPEC CHECKSUMS:

PODFILE CHECKSUM: a62623f56f2d1d0e85a4a3c73509cd2832d5c86f

COCOAPODS: 1.14.3
COCOAPODS: 1.15.0
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ enum OverflowMenuOption {
saveImage,
saveProject,
loadImage,
newImage;
newImage,
advancedOptions;

String localizedLabel(BuildContext context) {
final localizations = AppLocalizations.of(context);
Expand All @@ -28,6 +29,8 @@ enum OverflowMenuOption {
return localizations.newImage;
case OverflowMenuOption.saveProject:
return localizations.saveProject;
case OverflowMenuOption.advancedOptions:
return localizations.advancedOptions;
}
}
}
Expand Down Expand Up @@ -75,6 +78,9 @@ class _OverflowMenuState extends ConsumerState<OverflowMenu> {
case OverflowMenuOption.newImage:
ioHandler.newImage(context, this);
break;
case OverflowMenuOption.advancedOptions:
_showAdvancedOptionsDialog();
break;
}
}

Expand Down Expand Up @@ -132,6 +138,15 @@ class _OverflowMenuState extends ConsumerState<OverflowMenu> {
return true;
}

void _showAdvancedOptionsDialog() {
showDialog(
context: context,
builder: (BuildContext context) {
return const AdvancedOptionsDialog();
},
);
}

Future<void> _saveProject() async {
final imageData = await showSaveImageDialog(context, true);

Expand Down
1 change: 1 addition & 0 deletions packages/io_library/lib/io_library.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ export 'src/usecase/load_image_from_file_manager.dart';
export 'src/usecase/load_image_from_photo_library.dart';
export 'src/usecase/save_as_catrobat_image.dart';
export 'src/usecase/save_as_raster_image.dart';
export 'src/ui/advanced_options_dialog.dart';
92 changes: 92 additions & 0 deletions packages/io_library/lib/src/ui/advanced_options_dialog.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import 'package:flutter/material.dart';

class AdvancedOptionsDialog extends StatefulWidget {
const AdvancedOptionsDialog({Key? key}) : super(key: key);

@override
AdvancedOptionsDialogState createState() => AdvancedOptionsDialogState();
}

class AdvancedOptionsDialogState extends State<AdvancedOptionsDialog> {
bool _isSelectedOption1 = true;
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
bool _isSelectedOption2 = true;

@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text(
'Advanced Options',
style: TextStyle(color: Colors.blue),
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
),
content: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Text(
'Antialiasing',
style: TextStyle(color: Colors.black),
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
),
ToggleButtons(
isSelected: [_isSelectedOption1],
onPressed: (int index) {
setState(() {
_isSelectedOption1 = !_isSelectedOption1;
});
},
color: Colors.grey,
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
fillColor: Colors.blue.shade50,
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
children: <Widget>[
Icon(
_isSelectedOption1 ? Icons.toggle_on : Icons.toggle_off,
size: 45.0,
),
],
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Text(
'Smoothing',
style: TextStyle(color: Colors.black),
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
),
ToggleButtons(
isSelected: [_isSelectedOption2],
onPressed: (int index) {
setState(() {
_isSelectedOption2 = !_isSelectedOption2;
});
},
color: Colors.grey,
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
fillColor: Colors.blue.shade50,
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
children: <Widget>[
Icon(
_isSelectedOption2 ? Icons.toggle_on : Icons.toggle_off,
size: 45.0,
),
],
),
],
),
],
),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text('CANCEL'),
),
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: const Text('OK'),
),
],
);

}
}
3 changes: 3 additions & 0 deletions packages/l10n/lib/src/l10n/app_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Layers'**
String get layers;

// Getter for "Advanced Options"
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
String get advancedOptions;
}

class _AppLocalizationsDelegate
Expand Down
4 changes: 4 additions & 0 deletions packages/l10n/lib/src/l10n/app_localizations_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,8 @@ class AppLocalizationsEn extends AppLocalizations {

@override
String get layers => 'Layers';

// added advnaced options
vishad-tyagi marked this conversation as resolved.
Show resolved Hide resolved
@override
String get advancedOptions => 'Advanced Options';
}
Loading