aves/lib/widgets/fullscreen/fullscreen_actions.dart
Thibault Deckers 6feb1efb13 minor fixes
2020-04-01 10:57:40 +09:00

89 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:outline_material_icons/outline_material_icons.dart';
enum FullscreenAction { delete, edit, info, open, openMap, print, rename, rotateCCW, rotateCW, setAs, share, toggleFavourite }
class FullscreenActions {
static const inApp = [
FullscreenAction.info,
FullscreenAction.toggleFavourite,
FullscreenAction.share,
FullscreenAction.delete,
FullscreenAction.rename,
FullscreenAction.rotateCCW,
FullscreenAction.rotateCW,
FullscreenAction.print,
];
static const externalApp = [
FullscreenAction.edit,
FullscreenAction.open,
FullscreenAction.setAs,
FullscreenAction.openMap,
];
}
extension ExtraFullscreenAction on FullscreenAction {
String getText() {
switch (this) {
// in app actions
case FullscreenAction.toggleFavourite:
// different data depending on toggle state
return null;
case FullscreenAction.delete:
return 'Delete';
case FullscreenAction.info:
return 'Info';
case FullscreenAction.rename:
return 'Rename';
case FullscreenAction.rotateCCW:
return 'Rotate left';
case FullscreenAction.rotateCW:
return 'Rotate right';
case FullscreenAction.print:
return 'Print';
case FullscreenAction.share:
return 'Share';
// external app actions
case FullscreenAction.edit:
return 'Edit with…';
case FullscreenAction.open:
return 'Open with…';
case FullscreenAction.setAs:
return 'Set as…';
case FullscreenAction.openMap:
return 'Show on map…';
}
return null;
}
IconData getIcon() {
switch (this) {
// in app actions
case FullscreenAction.toggleFavourite:
// different data depending on toggle state
return null;
case FullscreenAction.delete:
return OMIcons.delete;
case FullscreenAction.info:
return OMIcons.info;
case FullscreenAction.rename:
return OMIcons.title;
case FullscreenAction.rotateCCW:
return OMIcons.rotateLeft;
case FullscreenAction.rotateCW:
return OMIcons.rotateRight;
case FullscreenAction.print:
return OMIcons.print;
case FullscreenAction.share:
return OMIcons.share;
// external app actions
case FullscreenAction.edit:
case FullscreenAction.open:
case FullscreenAction.setAs:
case FullscreenAction.openMap:
return null;
}
return null;
}
}