36 lines
1 KiB
Dart
36 lines
1 KiB
Dart
/// A class that work as a enum. It overloads the operator `*` saving the double as a multiplier.
|
|
///
|
|
/// ```
|
|
/// PhotoViewComputedScale.contained * 2
|
|
/// ```
|
|
///
|
|
class PhotoViewComputedScale {
|
|
const PhotoViewComputedScale._internal(this._value, [this.multiplier = 1.0]);
|
|
|
|
final String _value;
|
|
final double multiplier;
|
|
|
|
@override
|
|
String toString() => 'Enum.$_value';
|
|
|
|
static const contained = const PhotoViewComputedScale._internal('contained');
|
|
static const covered = const PhotoViewComputedScale._internal('covered');
|
|
|
|
PhotoViewComputedScale operator *(double multiplier) {
|
|
return PhotoViewComputedScale._internal(_value, multiplier);
|
|
}
|
|
|
|
PhotoViewComputedScale operator /(double divider) {
|
|
return PhotoViewComputedScale._internal(_value, 1 / divider);
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) =>
|
|
identical(this, other) ||
|
|
other is PhotoViewComputedScale &&
|
|
runtimeType == other.runtimeType &&
|
|
_value == other._value;
|
|
|
|
@override
|
|
int get hashCode => _value.hashCode;
|
|
}
|