diff --git a/gallery/gallery/lib/codeviewer/code_segments.dart b/gallery/gallery/lib/codeviewer/code_segments.dart index dfaffd7920d..067ffefc287 100644 --- a/gallery/gallery/lib/codeviewer/code_segments.dart +++ b/gallery/gallery/lib/codeviewer/code_segments.dart @@ -6916,9 +6916,7 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' chips '), TextSpan(style: codeStyle.punctuationStyle, text: '='), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.punctuationStyle, text: '<'), - TextSpan(style: codeStyle.classStyle, text: 'Widget'), - TextSpan(style: codeStyle.punctuationStyle, text: '>['), + TextSpan(style: codeStyle.punctuationStyle, text: '['), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: 'FilterChip'), TextSpan(style: codeStyle.punctuationStyle, text: '('), @@ -28704,7 +28702,7 @@ class CodeSegments { ]); } - static TextSpan typographyDemo(BuildContext context) { + static TextSpan transformationsDemo(BuildContext context) { final CodeStyle codeStyle = CodeStyle.of(context); return TextSpan(children: [ TextSpan( @@ -28721,86 +28719,62 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), TextSpan(style: codeStyle.keywordStyle, text: 'import'), TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.stringStyle, text: '\u0027dart:collection\u0027'), + TextSpan(style: codeStyle.baseStyle, text: ' show '), + TextSpan(style: codeStyle.classStyle, text: 'IterableMixin'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'import'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.stringStyle, text: '\u0027dart:math\u0027'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'import'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.stringStyle, text: '\u0027dart:ui\u0027'), + TextSpan(style: codeStyle.baseStyle, text: ' show '), + TextSpan(style: codeStyle.classStyle, text: 'Vertices'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'import'), + TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan( style: codeStyle.stringStyle, text: '\u0027package:flutter/material.dart\u0027'), + TextSpan(style: codeStyle.baseStyle, text: ' hide '), + TextSpan(style: codeStyle.classStyle, text: 'Gradient'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), TextSpan(style: codeStyle.keywordStyle, text: 'import'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan( style: codeStyle.stringStyle, - text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'), + text: '\u0027package:vector_math/vector_math_64.dart\u0027'), + TextSpan(style: codeStyle.baseStyle, text: ' show '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), TextSpan(style: codeStyle.keywordStyle, text: 'class'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: '_TextStyleItem'), + TextSpan(style: codeStyle.classStyle, text: 'TransformationsDemo'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.keywordStyle, text: 'extends'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'), + TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'), TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '{'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'const'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: '_TextStyleItem'), + TextSpan(style: codeStyle.classStyle, text: 'TransformationsDemo'), TextSpan(style: codeStyle.punctuationStyle, text: '({'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: 'Key'), TextSpan(style: codeStyle.baseStyle, text: ' key'), - TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: '@required'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'this'), - TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'name'), - TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: '@required'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'this'), - TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'style'), - TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: '@required'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'this'), - TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'text'), - TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '})'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'assert'), - TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'name '), - TextSpan(style: codeStyle.punctuationStyle, text: '!='), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'null'), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'assert'), - TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'style '), - TextSpan(style: codeStyle.punctuationStyle, text: '!='), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'null'), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'assert'), - TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'text '), - TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'null'), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.keywordStyle, text: 'super'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'key'), @@ -28808,23 +28782,108 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' key'), TextSpan(style: codeStyle.punctuationStyle, text: ');'), TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: '_TransformationsDemoState'), + TextSpan(style: codeStyle.baseStyle, text: ' createState'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'String'), - TextSpan(style: codeStyle.baseStyle, text: ' name'), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_TransformationsDemoState'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_TransformationsDemoState'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'State'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'TransformationsDemo'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// The radius of a hexagon tile in pixels.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kHexagonRadius'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '32.0'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan( + style: codeStyle.commentStyle, + text: '// The margin between hexagons.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'TextStyle'), - TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kHexagonMargin'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1.0'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The radius of the entire board in hexagons, not including the center.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'String'), - TextSpan(style: codeStyle.baseStyle, text: ' text'), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kBoardRadius'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '12'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' _reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' _board '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kBoardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kHexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.constantStyle, text: '_kHexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), TextSpan(style: codeStyle.keywordStyle, text: '@override'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), @@ -28837,95 +28896,6310 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' '), TextSpan(style: codeStyle.punctuationStyle, text: '{'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.keywordStyle, text: 'return'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'Padding'), - TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a padding'), - TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPainter'), + TextSpan(style: codeStyle.baseStyle, text: ' painter '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'), - TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'symmetric'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPainter'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'horizontal'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a board'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.numberStyle, text: '8'), + TextSpan(style: codeStyle.baseStyle, text: ' _board'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: ' vertical'), - TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.numberStyle, text: '16'), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), - TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The scene is drawn by a CustomPaint, but user interaction is handled by'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// the GestureTransformable parent widget.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'Row'), + TextSpan(style: codeStyle.classStyle, text: 'Scaffold'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan( - style: codeStyle.baseStyle, text: '\u000a crossAxisAlignment'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a backgroundColor'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'CrossAxisAlignment'), + TextSpan(style: codeStyle.classStyle, text: 'Theme'), TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'center'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'colorScheme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'primary'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a children'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a appBar'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.punctuationStyle, text: '['), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.classStyle, text: 'SizedBox'), + TextSpan(style: codeStyle.classStyle, text: 'AppBar'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a width'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a automaticallyImplyLeading'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.numberStyle, text: '72'), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a title'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: 'Text'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'name'), - TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: ' style'), - TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'Theme'), + TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'), TextSpan(style: codeStyle.punctuationStyle, text: '.'), TextSpan(style: codeStyle.baseStyle, text: 'of'), TextSpan(style: codeStyle.punctuationStyle, text: '('), TextSpan(style: codeStyle.baseStyle, text: 'context'), TextSpan(style: codeStyle.punctuationStyle, text: ').'), - TextSpan(style: codeStyle.baseStyle, text: 'textTheme'), - TextSpan(style: codeStyle.punctuationStyle, text: '.'), - TextSpan(style: codeStyle.baseStyle, text: 'caption'), + TextSpan(style: codeStyle.baseStyle, text: 'demo2dTransformationsTitle'), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.classStyle, text: 'Expanded'), - TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a body'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.classStyle, text: 'Text'), + TextSpan(style: codeStyle.classStyle, text: 'Container'), TextSpan(style: codeStyle.punctuationStyle, text: '('), - TextSpan(style: codeStyle.baseStyle, text: 'text'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a color'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' backgroundColor'), TextSpan(style: codeStyle.punctuationStyle, text: ','), - TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), TextSpan(style: codeStyle.punctuationStyle, text: ':'), - TextSpan(style: codeStyle.baseStyle, text: ' style'), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.punctuationStyle, text: '),'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), - TextSpan(style: codeStyle.punctuationStyle, text: '],'), - TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'LayoutBuilder'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' constraints'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Draw the scene as big as is available, but allow the user to'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// translate beyond that to a visibleSize that\u0027s a bit bigger.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.baseStyle, text: ' size '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'constraints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'maxWidth'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' constraints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'maxHeight'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.baseStyle, text: ' visibleSize '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTransformable'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a reset'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _reset'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onResetEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'CustomPaint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a painter'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' painter'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'fromLTWH'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'visibleSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'visibleSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a visibleSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a visibleSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Center the board in the middle of the screen. It\u0027s drawn centered'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// at the origin, which is the top left corner of the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// GestureTransformable.'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a initialTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a size'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' size'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a persistentFooterButtons'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '['), + TextSpan(style: codeStyle.baseStyle, text: 'resetButton'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' editButton'), + TextSpan(style: codeStyle.punctuationStyle, text: '],'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'IconButton'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' resetButton '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'IconButton'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPressed'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'true'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a tooltip'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan( + style: codeStyle.baseStyle, + text: 'demo2dTransformationsResetTooltip'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a color'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Theme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'colorScheme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'surface'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a icon'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Icon'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Icons'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'replay'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'IconButton'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' editButton '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'IconButton'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPressed'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'selected '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a showModalBottomSheet'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '>('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a context'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a builder'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Container'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a width'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'infinity'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a height'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '150'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a padding'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'all'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '12'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'EditBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a onColorSelection'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'color'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a _board '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'copyWithBoardPointColor'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a _board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Navigator'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'pop'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a tooltip'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan( + style: codeStyle.baseStyle, text: 'demo2dTransformationsEditTooltip'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a color'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Theme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'colorScheme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'surface'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a icon'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Icon'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Icons'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'edit'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'TapUpDetails'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' scenePoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'pointToBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'scenePoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _board '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'copyWithSelected'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// CustomPainter is what is passed to CustomPaint and actually draws the scene'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '// when its `paint` method is called.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPainter'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'CustomPainter'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPainter'), + TextSpan(style: codeStyle.punctuationStyle, text: '({'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'board'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' board'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' paint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Canvas'), + TextSpan(style: codeStyle.baseStyle, text: ' canvas'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.baseStyle, text: ' size'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' drawBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.baseStyle, text: ' color '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'color'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'withOpacity'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'selected '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0.7'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vertices'), + TextSpan(style: codeStyle.baseStyle, text: ' vertices '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getVerticesForBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a canvas'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'drawVertices'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'vertices'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BlendMode'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'color'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Paint'), + TextSpan(style: codeStyle.punctuationStyle, text: '());'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a board'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'forEach'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'drawBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// We should repaint whenever the board changes, such as board.selected.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' shouldRepaint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPainter'), + TextSpan(style: codeStyle.baseStyle, text: ' oldDelegate'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' oldDelegate'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'board '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' board'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The entire state of the hex board and abstraction to get information about'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// it. Iterable so that all BoardPoints on the board can be iterated over.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: '@immutable'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Object'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'with'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'IterableMixin'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.punctuationStyle, text: '({'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '})'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexagonRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexagonMargin '), + TextSpan(style: codeStyle.punctuationStyle, text: '>='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Set up the positions for the center hexagon where the entire board is'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, text: '// centered on the origin.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Start point of hexagon (top vertex).'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Point'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Point'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>('), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' sqrt'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a positionsForHexagonAtOrigin'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'addAll'), + TextSpan(style: codeStyle.punctuationStyle, text: '(<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>['), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' centerToFlat'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' hexStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadiusPadded'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ']);'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoints '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'addAll'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Generate boardPoints for a fresh board.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _getNextBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'while'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'add'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _getNextBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Number of hexagons from center to edge.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Pixel radius of a hexagon (center to vertex).'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, text: '// Margin between hexagons.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan( + style: codeStyle.baseStyle, text: ' positionsForHexagonAtOrigin '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>[];'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' _boardPoints '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>[];'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Iterator'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' iterator '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_BoardIterator'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// For a given q axial coordinate, get the range of possible r values'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// See the definition of BoardPoint for more information about hex grids and'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// axial coordinates.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: '_Range'), + TextSpan(style: codeStyle.baseStyle, text: ' _getRRangeForQ'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' q'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' rStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' rEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '<='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'boardRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' q'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rEnd '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rEnd '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' q'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_Range'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'rStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' rEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Get the BoardPoint that comes after the given BoardPoint. If given null,'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// returns the origin BoardPoint. If given BoardPoint is the last, returns'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// null.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' _getNextBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// If before the first element.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '(-'), + TextSpan(style: codeStyle.baseStyle, text: 'boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_Range'), + TextSpan(style: codeStyle.baseStyle, text: ' rRange '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _getRRangeForQ'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// If at or after the last element.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '>='), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '>='), + TextSpan(style: codeStyle.baseStyle, text: ' rRange'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'max'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// If wrapping from one q to the next.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '>='), + TextSpan(style: codeStyle.baseStyle, text: ' rRange'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'max'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _getRRangeForQ'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'min'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Otherwise we\u0027re just incrementing r.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Check if the board point is actually on the board.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' _validateBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' center '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' distanceFromCenter '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' getDistance'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'center'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' distanceFromCenter '), + TextSpan(style: codeStyle.punctuationStyle, text: '<='), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Get the distance between two BoardPoins.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' getDistance'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' a'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' b'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' a3 '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' a'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'cubeCoordinates'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' b3 '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' b'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'cubeCoordinates'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'a3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' b3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'a3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' b3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'a3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'z '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' b3'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'z'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '())'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '~/'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Return the q,r BoardPoint for a point in the scene, where the origin is in'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// the center of the board in both coordinate systems. If no BoardPoint at the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, text: '// location, return null.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' pointToBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' point'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'sqrt'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' point'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' point'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'round'), + TextSpan(style: codeStyle.punctuationStyle, text: '(),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' point'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'round'), + TextSpan(style: codeStyle.punctuationStyle, text: '(),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: '_validateBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '))'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' _boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'firstWhere'), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Return a scene point for the center of a hexagon given its q,r point.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Point'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointToPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Point'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a sqrt'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a sqrt'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '3'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.numberStyle, text: '1.5'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Get Vertices that can be drawn to a Canvas for the given BoardPoint.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Vertices'), + TextSpan(style: codeStyle.baseStyle, text: ' getVerticesForBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Point'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' centerOfHexZeroCenter '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointToPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' positions '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan( + style: codeStyle.baseStyle, text: ' positionsForHexagonAtOrigin'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'map'), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'offset'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'translate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'centerOfHexZeroCenter'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' centerOfHexZeroCenter'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}).'), + TextSpan(style: codeStyle.baseStyle, text: 'toList'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vertices'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'VertexMode'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'triangleFan'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a positions'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a colors'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.punctuationStyle, text: '>.'), + TextSpan(style: codeStyle.baseStyle, text: 'filled'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'positions'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'length'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Return a new board with the given BoardPoint selected.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' copyWithSelected'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'selected '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoard '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoard'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Return a new board where boardPoint has the given color.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.baseStyle, text: ' copyWithBoardPointColor'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'copyWithColor'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'color'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointIndex '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'indexWhere'), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPointI'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'elementAt'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'boardPointIndex'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'color '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoardPoints '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>.'), + TextSpan(style: codeStyle.baseStyle, text: 'from'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a nextBoardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '['), + TextSpan(style: codeStyle.baseStyle, text: 'boardPointIndex'), + TextSpan(style: codeStyle.punctuationStyle, text: ']'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' selectedBoardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' selected '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoardPoint '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Board'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' boardRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonRadius'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' hexagonMargin'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a selected'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' selectedBoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' nextBoardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_BoardIterator'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Iterator'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: '_BoardIterator'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'List'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' currentIndex'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' current'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' moveNext'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'currentIndex '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a currentIndex '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a currentIndex'), + TextSpan(style: codeStyle.punctuationStyle, text: '++;'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'currentIndex '), + TextSpan(style: codeStyle.punctuationStyle, text: '>='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'length'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a current '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a current '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' boardPoints'), + TextSpan(style: codeStyle.punctuationStyle, text: '['), + TextSpan(style: codeStyle.baseStyle, text: 'currentIndex'), + TextSpan(style: codeStyle.punctuationStyle, text: '];'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'true'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '// A range of q/r board coordinate values.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: '@immutable'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_Range'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_Range'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'min'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'max'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'min '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'max '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'min '), + TextSpan(style: codeStyle.punctuationStyle, text: '<='), + TextSpan(style: codeStyle.baseStyle, text: ' max'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' min'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' max'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '// A location on the board in axial coordinates.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Axial coordinates use two integers, q and r, to locate a hexagon on a grid.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// https://www.redblobgames.com/grids/hexagons/#coordinates-axial'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: '@immutable'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'color '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.baseStyle, text: 'xFFCDCDCD'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' q'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' r'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'String'), + TextSpan(style: codeStyle.baseStyle, text: ' toString'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.stringStyle, + text: '\u0027BoardPoint(\u0024q, \u0024r, \u0024color)\u0027'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, text: '// Only compares by location.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'operator'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '==('), + TextSpan(style: codeStyle.classStyle, text: 'Object'), + TextSpan(style: codeStyle.baseStyle, text: ' other'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'other'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'runtimeType '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' runtimeType'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' other '), + TextSpan(style: codeStyle.keywordStyle, text: 'is'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' other'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' q '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' other'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'r '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' r'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'int'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' hashCode '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: ' hashValues'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'q'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' r'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.baseStyle, text: ' copyWithColor'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Color'), + TextSpan(style: codeStyle.baseStyle, text: ' nextColor'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'BoardPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'q'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' r'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' color'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' nextColor'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Convert from q,r axial coords to x,y,z cube coords.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' cubeCoordinates '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a q'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'toDouble'), + TextSpan(style: codeStyle.punctuationStyle, text: '(),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a r'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'toDouble'), + TextSpan(style: codeStyle.punctuationStyle, text: '(),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '(-'), + TextSpan(style: codeStyle.baseStyle, text: 'q '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' r'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'toDouble'), + TextSpan(style: codeStyle.punctuationStyle, text: '(),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// This widget allows 2D transform interactions on its child in relation to its'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// parent. The user can transform the child by dragging to pan or pinching to'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// zoom and rotate. All event callbacks for GestureDetector are supported, and'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// the coordinates that are given are untransformed and in relation to the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '// original position of the child.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: '@immutable'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTransformable'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTransformable'), + TextSpan(style: codeStyle.punctuationStyle, text: '({'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Key'), + TextSpan(style: codeStyle.baseStyle, text: ' key'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// The child to perform the transformations on.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'child'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The desired visible size of the widget and the area that is receptive to'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// gestures. If a widget that\u0027s as big as possible is desired, then wrap'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// this in a LayoutBuilder and pass'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// `Size(constraints.maxWidth, constraints.maxHeight)`.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The scale will be clamped to between these values. A maxScale of null has'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// no bounds. minScale must be greater than zero.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'maxScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '2.5'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'minScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0.8'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Transforms will be limited so that the viewport can not view beyond this'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Rect. The Rect does not rotate with the rest of the scene, so it is'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// always aligned with the viewport. A null boundaryRect results in no'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// limits to the distance that the viewport can be transformed to see.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Initial values for the transform can be provided.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Any and all of the possible transformations can be disabled.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableTranslation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// If set to true, this widget will animate back to its initial transform'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// and call onResetEnd when done. When utilizing reset, onResetEnd should'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// also be implemented, and it should set reset to false when called.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'false'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Access to event callbacks from GestureDetector. Called with untransformed'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, text: '// coordinates in an Offset.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onDoubleTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onLongPress'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onLongPressUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onResetEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '})'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'child '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'size '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'minScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'minScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'disableTranslation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'disableScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'disableRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '!'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: ' onResetEnd '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.stringStyle, + text: '\u0027Must implement onResetEnd to use reset.\u0027'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'key'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' key'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.baseStyle, text: ' child'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.baseStyle, text: ' size'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' reset'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTapDownCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onTapDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTapUpCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTapCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTapCancelCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onTapCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureTapCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onDoubleTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureLongPressCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onLongPress'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureLongPressUpCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onLongPressUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragDownCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onVerticalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragStartCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onVerticalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragUpdateCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onVerticalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragEndCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onVerticalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragCancelCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onVerticalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragDownCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onHorizontalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragStartCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onHorizontalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragUpdateCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onHorizontalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragEndCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onHorizontalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragCancelCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onHorizontalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragDownCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onPanDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragStartCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onPanStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragUpdateCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onPanUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragEndCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onPanEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDragCancelCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onPanCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'VoidCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onResetEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureScaleStartCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureScaleUpdateCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureScaleEndCallback'), + TextSpan(style: codeStyle.baseStyle, text: ' onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' maxScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' minScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.baseStyle, text: ' boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' disableTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' disableScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' disableRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' initialTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' initialScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' initialRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: '_GestureTransformableState'), + TextSpan(style: codeStyle.baseStyle, text: ' createState'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '=>'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureTransformableState'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// A single user event can only represent one of these gestures. The user can\u0027t'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// do multiple at the same time, which results in more precise transformations.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'enum'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a translate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rotate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: '// This is public only for access from a unit test.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureTransformableState'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'State'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'GestureTransformable'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'with'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'TickerProviderStateMixin'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' _animation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'AnimationController'), + TextSpan(style: codeStyle.baseStyle, text: ' _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' _animationReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'AnimationController'), + TextSpan(style: codeStyle.baseStyle, text: ' _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The translation that will be applied to the scene (not viewport).'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// A positive x offset moves the scene right, viewport left.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// A positive y offset moves the scene down, viewport up.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' _translateFromScene'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Point where a single translation began.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' _scaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Scale value at start of scaling gesture.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' _rotationStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Rotation at start of rotation gesture.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.baseStyle, text: ' _boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'identity'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' _currentRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.baseStyle, text: ' gestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The transformation matrix that gives the initial home position.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'get'), + TextSpan(style: codeStyle.baseStyle, text: ' _initialTransform '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'identity'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialTranslation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a matrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixTranslate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a matrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixScale'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a matrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixRotate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initialRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'zero'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Return the scene point at the given viewport point.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// On viewportPoint, perform the inverse transformation of the scene to get'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// where the point would be in the scene before the transformation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' inverseMatrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'inverted'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' untransformed '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' inverseMatrix'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'transform3'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a viewportPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a viewportPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'untransformed'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' untransformed'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Get the offset of the current widget from the global screen coordinates.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// TODO(justinmc): Protect against calling this during first build.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'static'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BuildContext'), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'RenderBox'), + TextSpan(style: codeStyle.baseStyle, text: ' renderObject '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'findRenderObject'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'as'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'RenderBox'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' renderObject'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'localToGlobal'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'zero'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' initState'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'initState'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boundaryRect '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'boundaryRect '), + TextSpan(style: codeStyle.punctuationStyle, text: '??'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'zero '), + TextSpan(style: codeStyle.punctuationStyle, text: '&'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _initialTransform'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'AnimationController'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a vsync'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'AnimationController'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a vsync'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a _animateResetInitialize'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' didUpdateWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'GestureTransformable'), + TextSpan(style: codeStyle.baseStyle, text: ' oldWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'didUpdateWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'oldWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '!'), + TextSpan(style: codeStyle.baseStyle, text: 'oldWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' _animationReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a _animateResetInitialize'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' oldWidget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' _animationReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _animateResetStop'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.baseStyle, text: ' build'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BuildContext'), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// A GestureDetector allows the detection of panning and zooming gestures on'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// its child, which is the CustomPaint.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'GestureDetector'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a behavior'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'HitTestBehavior'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'opaque'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Necessary when translating off screen'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onTapDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapDown '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapDown'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'TapDownDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapUp '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapUp'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'TapUpDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onTapCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onTapCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onDoubleTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onDoubleTap'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onLongPress'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onLongPress'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onLongPressUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onLongPressUp'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onVerticalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragDown '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragDownDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onVerticalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragStartDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onVerticalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragUpdate '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragUpdateDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onVerticalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onVerticalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onVerticalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onHorizontalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragDown '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragDown'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragDownDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a onHorizontalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragStartDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a onHorizontalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragUpdate '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragUpdateDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a onHorizontalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a onHorizontalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onHorizontalDragCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPanDown'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanDown '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanDown'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragDownDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPanStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragStartDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPanUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanUpdate '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '?'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'DragUpdateDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a globalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'globalPosition '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' getOffset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '},'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPanEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onPanCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onPanCancel'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'ClipRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// The scene is panned/zoomed/rotated using this Transform widget.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Container'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'child'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a height'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a width'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Return a new matrix representing the given matrix after applying the given'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// translation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrixTranslate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translation'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableTranslation '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: ' translation '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'zero'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Clamp translation so the viewport remains inside _boundaryRect.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getMaxScaleOnAxis'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Size'), + TextSpan(style: codeStyle.baseStyle, text: ' scaledSize '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportBoundaries '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'fromLTRB'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'left'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'top'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'right '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' scaledSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'bottom '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' scaledSize'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Translation is reversed (a positive translation moves the scene to the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// right, viewport to the left).'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.baseStyle, text: ' translationBoundaries '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Rect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'fromLTRB'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'right'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'bottom'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'left'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' viewportBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'top'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' nextMatrix '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'clone'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '..'), + TextSpan(style: codeStyle.baseStyle, text: 'translate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a translation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a translation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' nextTranslationVector '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' nextMatrix'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' nextTranslation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a nextTranslationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a nextTranslationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'bool'), + TextSpan(style: codeStyle.baseStyle, text: ' inBoundaries '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' translationBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'contains'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'nextTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' nextTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: 'inBoundaries'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// TODO(justinmc): Instead of canceling translation when it goes out of'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// bounds, stop translation at boundary.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' nextMatrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Return a new matrix representing the given matrix after applying the given'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// scale transform.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrixScale'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: ' scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Don\u0027t allow a scale that moves the viewport outside of _boundaryRect.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' tl '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' tr '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' bl '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' br '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'width'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'size'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'height'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: '_boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'contains'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'tl'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '!'), + TextSpan(style: codeStyle.baseStyle, text: '_boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'contains'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'tr'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '!'), + TextSpan(style: codeStyle.baseStyle, text: '_boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'contains'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'bl'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '!'), + TextSpan(style: codeStyle.baseStyle, text: '_boundaryRect'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'contains'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'br'), + TextSpan(style: codeStyle.punctuationStyle, text: '))'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Don\u0027t allow a scale that results in an overall scale beyond min/max'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// scale.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' currentScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getMaxScaleOnAxis'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' totalScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' currentScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' clampedTotalScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' totalScale'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'clamp'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'minScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'maxScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'as'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' clampedScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' clampedTotalScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' currentScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: '..'), + TextSpan(style: codeStyle.baseStyle, text: 'scale'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'clampedScale'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Return a new matrix representing the given matrix after applying the given'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// rotation transform.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Rotating the scene cannot cause the viewport to view beyond _boundaryRect.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrixRotate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'disableRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '||'), + TextSpan(style: codeStyle.baseStyle, text: ' rotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' matrix'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' matrix\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '..'), + TextSpan(style: codeStyle.baseStyle, text: 'translate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'focalPointScene'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointScene'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '..'), + TextSpan(style: codeStyle.baseStyle, text: 'rotateZ'), + TextSpan(style: codeStyle.punctuationStyle, text: '(-'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '..'), + TextSpan(style: codeStyle.baseStyle, text: 'translate'), + TextSpan(style: codeStyle.punctuationStyle, text: '(-'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPointScene'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPointScene'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Handle the start of a gesture of _GestureType.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'ScaleStartDetails'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleStart'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'isAnimating'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'stop'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '?.'), + TextSpan(style: codeStyle.baseStyle, text: 'removeListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimate'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'isAnimating'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _animateResetStop'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a\u000a gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _scaleStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getMaxScaleOnAxis'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _translateFromScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _rotationStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _currentRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Handle an update to an ongoing gesture of _GestureType.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'ScaleUpdateDetails'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getMaxScaleOnAxis'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleUpdate '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleUpdate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'ScaleUpdateDetails'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '));'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Decide which type of gesture this is by comparing the amount of scale'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// and rotation in the gesture, if any. Scale starts at 1 and rotation'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// starts at 0. Translate will have 0 scale and 0 rotation because it uses'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// only one finger.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '>'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '())'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'translate'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' _scaleStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// details.scale gives us the amount to change the scale as of the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// start of this gesture, so calculate the amount to scale as of the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// previous call to _onScaleUpdate.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' desiredScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _scaleStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '*'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' scaleChange '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' desiredScale '), + TextSpan(style: codeStyle.punctuationStyle, text: '/'), + TextSpan(style: codeStyle.baseStyle, text: ' scale'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixScale'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' scaleChange'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getMaxScaleOnAxis'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// While scaling, translate such that the user\u0027s two fingers stay on the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// same places in the scene. That means that the focal point of the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// scale should be on the same place in the scene before and after the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// scale.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointSceneNext '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a matrixTranslate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointSceneNext '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointScene'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'gestureType '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_GestureType'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotate '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' desiredRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _rotationStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'rotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixRotate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _currentRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' desiredRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _currentRotation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' desiredRotation'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'else'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_translateFromScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '&&'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'scale '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '1'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Translate so that the same point in the scene is underneath the'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// focal point before and after the movement.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translationChange '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' focalPointScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' _translateFromScene'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixTranslate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' translationChange'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan( + style: codeStyle.baseStyle, + text: '\u000a _translateFromScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'focalPoint'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Handle the end of a gesture of _GestureType.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'ScaleEndDetails'), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleEnd '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onScaleEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _scaleStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _rotationStart '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _translateFromScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a _animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '?.'), + TextSpan(style: codeStyle.baseStyle, text: 'removeListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimate'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// If the scale ended with velocity, animate inertial movement'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'double'), + TextSpan(style: codeStyle.baseStyle, text: ' velocityTotal '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'velocity'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'pixelsPerSecond'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dx'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '+'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'velocity'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'pixelsPerSecond'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dy'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'abs'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'velocityTotal '), + TextSpan(style: codeStyle.punctuationStyle, text: '=='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '0'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' translationVector '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'translationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' translationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'InertialMotion'), + TextSpan(style: codeStyle.baseStyle, text: ' inertialMotion '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'InertialMotion'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'details'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'velocity'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' translation'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Tween'), + TextSpan(style: codeStyle.punctuationStyle, text: '<'), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '>('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a begin'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' translation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a end'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' inertialMotion'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'finalPosition'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'animate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_controller'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'duration '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Duration'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'milliseconds'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' inertialMotion'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'duration'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'toInt'), + TextSpan(style: codeStyle.punctuationStyle, text: '());'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'addListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimate'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'fling'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Handle inertia drag animation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onAnimate'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Translate _transform such that the resulting translation is'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.commentStyle, text: '// _animation.value.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Vector3'), + TextSpan(style: codeStyle.baseStyle, text: ' translationVector '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'getTranslation'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'translationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'x'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' translationVector'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'y'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translationScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'translation'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' animationScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' fromViewport'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'value'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Offset'), + TextSpan(style: codeStyle.baseStyle, text: ' translationChangeScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' animationScene '), + TextSpan(style: codeStyle.punctuationStyle, text: '-'), + TextSpan(style: codeStyle.baseStyle, text: ' translationScene'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' matrixTranslate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' translationChangeScene'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: '_controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'isAnimating'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation'), + TextSpan(style: codeStyle.punctuationStyle, text: '?.'), + TextSpan(style: codeStyle.baseStyle, text: 'removeListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimate'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animation '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Handle reset to home transform animation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _onAnimateReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a setState'), + TextSpan(style: codeStyle.punctuationStyle, text: '(()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _transform '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' _animationReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'value'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '});'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'if'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '(!'), + TextSpan(style: codeStyle.baseStyle, text: '_controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'isAnimating'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animationReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '?.'), + TextSpan(style: codeStyle.baseStyle, text: 'removeListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimateReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _animationReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onResetEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Initialize the reset to home transform animation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _animateResetInitialize'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animationReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Matrix4Tween'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a begin'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _transform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a end'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' _initialTransform'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'animate'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'duration '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Duration'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'milliseconds'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '400'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animationReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'addListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimateReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'forward'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan( + style: codeStyle.commentStyle, + text: '// Stop a running reset to home transform animation.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' _animateResetStop'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'stop'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animationReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '?.'), + TextSpan(style: codeStyle.baseStyle, text: 'removeListener'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '_onAnimateReset'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _animationReset '), + TextSpan(style: codeStyle.punctuationStyle, text: '='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'reset'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a widget'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'onResetEnd'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'void'), + TextSpan(style: codeStyle.baseStyle, text: ' dispose'), + TextSpan(style: codeStyle.punctuationStyle, text: '()'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controller'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dispose'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a _controllerReset'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dispose'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'dispose'), + TextSpan(style: codeStyle.punctuationStyle, text: '();'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan(style: codeStyle.punctuationStyle, text: '}'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + ]); + } + + static TextSpan typographyDemo(BuildContext context) { + final CodeStyle codeStyle = CodeStyle.of(context); + return TextSpan(children: [ + TextSpan( + style: codeStyle.commentStyle, + text: '// Copyright 2019 The Flutter team. All rights reserved.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, + text: + '// Use of this source code is governed by a BSD-style license that can be'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a'), + TextSpan( + style: codeStyle.commentStyle, text: '// found in the LICENSE file.'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'import'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.stringStyle, + text: '\u0027package:flutter/material.dart\u0027'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'import'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan( + style: codeStyle.stringStyle, + text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'), + TextSpan(style: codeStyle.keywordStyle, text: 'class'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_TextStyleItem'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'extends'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: '_TextStyleItem'), + TextSpan(style: codeStyle.punctuationStyle, text: '({'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Key'), + TextSpan(style: codeStyle.baseStyle, text: ' key'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'name'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'style'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@required'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'this'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'text'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '})'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'name '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'style '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'assert'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'text '), + TextSpan(style: codeStyle.punctuationStyle, text: '!='), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'null'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'super'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'key'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' key'), + TextSpan(style: codeStyle.punctuationStyle, text: ');'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'String'), + TextSpan(style: codeStyle.baseStyle, text: ' name'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'TextStyle'), + TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'final'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'String'), + TextSpan(style: codeStyle.baseStyle, text: ' text'), + TextSpan(style: codeStyle.punctuationStyle, text: ';'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: '@override'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Widget'), + TextSpan(style: codeStyle.baseStyle, text: ' build'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.classStyle, text: 'BuildContext'), + TextSpan(style: codeStyle.baseStyle, text: ' context'), + TextSpan(style: codeStyle.punctuationStyle, text: ')'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '{'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.keywordStyle, text: 'return'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Padding'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a padding'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.keywordStyle, text: 'const'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'symmetric'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'horizontal'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '8'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' vertical'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '16'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Row'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan( + style: codeStyle.baseStyle, text: '\u000a crossAxisAlignment'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'CrossAxisAlignment'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'center'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a children'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.punctuationStyle, text: '['), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'SizedBox'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a width'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.numberStyle, text: '72'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Text'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'name'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Theme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'of'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'context'), + TextSpan(style: codeStyle.punctuationStyle, text: ').'), + TextSpan(style: codeStyle.baseStyle, text: 'textTheme'), + TextSpan(style: codeStyle.punctuationStyle, text: '.'), + TextSpan(style: codeStyle.baseStyle, text: 'caption'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.classStyle, text: 'Expanded'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: '\u000a child'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' '), + TextSpan(style: codeStyle.classStyle, text: 'Text'), + TextSpan(style: codeStyle.punctuationStyle, text: '('), + TextSpan(style: codeStyle.baseStyle, text: 'text'), + TextSpan(style: codeStyle.punctuationStyle, text: ','), + TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.punctuationStyle, text: ':'), + TextSpan(style: codeStyle.baseStyle, text: ' style'), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '),'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), + TextSpan(style: codeStyle.punctuationStyle, text: '],'), + TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: '),'), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.punctuationStyle, text: ');'), @@ -28972,9 +35246,7 @@ class CodeSegments { TextSpan(style: codeStyle.baseStyle, text: ' styleItems '), TextSpan(style: codeStyle.punctuationStyle, text: '='), TextSpan(style: codeStyle.baseStyle, text: ' '), - TextSpan(style: codeStyle.punctuationStyle, text: '<'), - TextSpan(style: codeStyle.classStyle, text: 'Widget'), - TextSpan(style: codeStyle.punctuationStyle, text: '>['), + TextSpan(style: codeStyle.punctuationStyle, text: '['), TextSpan(style: codeStyle.baseStyle, text: '\u000a '), TextSpan(style: codeStyle.classStyle, text: '_TextStyleItem'), TextSpan(style: codeStyle.punctuationStyle, text: '('), diff --git a/gallery/gallery/lib/data/demos.dart b/gallery/gallery/lib/data/demos.dart index b4ccde4b6ce..7df98772e30 100644 --- a/gallery/gallery/lib/data/demos.dart +++ b/gallery/gallery/lib/data/demos.dart @@ -40,6 +40,7 @@ import 'package:gallery/demos/material/tabs_demo.dart'; import 'package:gallery/demos/material/text_field_demo.dart'; import 'package:gallery/demos/material/tooltip_demo.dart'; import 'package:gallery/demos/reference/colors_demo.dart'; +import 'package:gallery/demos/reference/transformations_demo.dart'; import 'package:gallery/demos/reference/typography_demo.dart'; import 'package:gallery/l10n/gallery_localizations.dart'; import 'package:gallery/themes/material_demo_theme_data.dart'; @@ -800,6 +801,20 @@ List referenceDemos(BuildContext context) { ), ], ), + GalleryDemo( + title: localizations.demo2dTransformationsTitle, + icon: GalleryIcons.gridOn, + subtitle: localizations.demo2dTransformationsSubtitle, + configurations: [ + GalleryDemoConfiguration( + title: localizations.demo2dTransformationsTitle, + description: localizations.demo2dTransformationsDescription, + documentationUrl: '$_docsBaseUrl/widgets/GestureDetector-class.html', + buildRoute: (_) => TransformationsDemo(), + code: CodeSegments.transformationsDemo, + ), + ], + ), ]; } diff --git a/gallery/gallery/lib/demos/material/chip_demo.dart b/gallery/gallery/lib/demos/material/chip_demo.dart index 7aff3784a2e..24a9e8495a4 100644 --- a/gallery/gallery/lib/demos/material/chip_demo.dart +++ b/gallery/gallery/lib/demos/material/chip_demo.dart @@ -145,7 +145,7 @@ class _FilterChipDemoState extends State<_FilterChipDemo> { @override Widget build(BuildContext context) { - final chips = [ + final chips = [ FilterChip( label: Text(GalleryLocalizations.of(context).chipElevator), selected: isSelectedElevator, diff --git a/gallery/gallery/lib/demos/reference/transformations_demo.dart b/gallery/gallery/lib/demos/reference/transformations_demo.dart new file mode 100644 index 00000000000..bf03dc8892c --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo.dart @@ -0,0 +1,175 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:ui' show Vertices; +import 'package:flutter/material.dart'; +import 'package:gallery/l10n/gallery_localizations.dart'; +import 'transformations_demo_board.dart'; +import 'transformations_demo_edit_board_point.dart'; +import 'transformations_demo_gesture_transformable.dart'; + +// BEGIN transformationsDemo#1 + +class TransformationsDemo extends StatefulWidget { + const TransformationsDemo({Key key}) : super(key: key); + + @override + _TransformationsDemoState createState() => _TransformationsDemoState(); +} + +class _TransformationsDemoState extends State { + // The radius of a hexagon tile in pixels. + static const _kHexagonRadius = 32.0; + // The margin between hexagons. + static const _kHexagonMargin = 1.0; + // The radius of the entire board in hexagons, not including the center. + static const _kBoardRadius = 12; + + bool _reset = false; + Board _board = Board( + boardRadius: _kBoardRadius, + hexagonRadius: _kHexagonRadius, + hexagonMargin: _kHexagonMargin, + ); + + @override + Widget build(BuildContext context) { + final BoardPainter painter = BoardPainter( + board: _board, + ); + + // The scene is drawn by a CustomPaint, but user interaction is handled by + // the GestureTransformable parent widget. + return Scaffold( + backgroundColor: Theme.of(context).colorScheme.primary, + appBar: AppBar( + automaticallyImplyLeading: false, + title: + Text(GalleryLocalizations.of(context).demo2dTransformationsTitle), + ), + body: Container( + color: backgroundColor, + child: LayoutBuilder( + builder: (context, constraints) { + // Draw the scene as big as is available, but allow the user to + // translate beyond that to a visibleSize that's a bit bigger. + final Size size = Size(constraints.maxWidth, constraints.maxHeight); + final Size visibleSize = Size(size.width * 3, size.height * 2); + return GestureTransformable( + reset: _reset, + onResetEnd: () { + setState(() { + _reset = false; + }); + }, + child: CustomPaint( + painter: painter, + ), + boundaryRect: Rect.fromLTWH( + -visibleSize.width / 2, + -visibleSize.height / 2, + visibleSize.width, + visibleSize.height, + ), + // Center the board in the middle of the screen. It's drawn centered + // at the origin, which is the top left corner of the + // GestureTransformable. + initialTranslation: Offset(size.width / 2, size.height / 2), + onTapUp: _onTapUp, + size: size, + ); + }, + ), + ), + persistentFooterButtons: [resetButton, editButton], + ); + } + + IconButton get resetButton { + return IconButton( + onPressed: () { + setState(() { + _reset = true; + }); + }, + tooltip: + GalleryLocalizations.of(context).demo2dTransformationsResetTooltip, + color: Theme.of(context).colorScheme.surface, + icon: const Icon(Icons.replay), + ); + } + + IconButton get editButton { + return IconButton( + onPressed: () { + if (_board.selected == null) { + return; + } + showModalBottomSheet( + context: context, + builder: (context) { + return Container( + width: double.infinity, + height: 150, + padding: const EdgeInsets.all(12), + child: EditBoardPoint( + boardPoint: _board.selected, + onColorSelection: (color) { + setState(() { + _board = _board.copyWithBoardPointColor( + _board.selected, color); + Navigator.pop(context); + }); + }, + ), + ); + }); + }, + tooltip: + GalleryLocalizations.of(context).demo2dTransformationsEditTooltip, + color: Theme.of(context).colorScheme.surface, + icon: const Icon(Icons.edit), + ); + } + + void _onTapUp(TapUpDetails details) { + final Offset scenePoint = details.globalPosition; + final BoardPoint boardPoint = _board.pointToBoardPoint(scenePoint); + setState(() { + _board = _board.copyWithSelected(boardPoint); + }); + } +} + +// CustomPainter is what is passed to CustomPaint and actually draws the scene +// when its `paint` method is called. +class BoardPainter extends CustomPainter { + const BoardPainter({ + this.board, + }); + + final Board board; + + @override + void paint(Canvas canvas, Size size) { + void drawBoardPoint(BoardPoint boardPoint) { + final Color color = boardPoint.color.withOpacity( + board.selected == boardPoint ? 0.7 : 1, + ); + final Vertices vertices = + board.getVerticesForBoardPoint(boardPoint, color); + canvas.drawVertices(vertices, BlendMode.color, Paint()); + } + + board.forEach(drawBoardPoint); + } + + // We should repaint whenever the board changes, such as board.selected. + @override + bool shouldRepaint(BoardPainter oldDelegate) { + return oldDelegate.board != board; + } +} + +// END diff --git a/gallery/gallery/lib/demos/reference/transformations_demo_board.dart b/gallery/gallery/lib/demos/reference/transformations_demo_board.dart new file mode 100644 index 00000000000..e10da5ac283 --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo_board.dart @@ -0,0 +1,289 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:collection' show IterableMixin; +import 'dart:math'; +import 'dart:ui' show Vertices; +import 'package:flutter/material.dart' hide Gradient; +import 'package:vector_math/vector_math_64.dart' show Vector3; + +// BEGIN transformationsDemo#2 + +// The entire state of the hex board and abstraction to get information about +// it. Iterable so that all BoardPoints on the board can be iterated over. +@immutable +class Board extends Object with IterableMixin { + Board({ + @required this.boardRadius, + @required this.hexagonRadius, + @required this.hexagonMargin, + this.selected, + List boardPoints, + }) : assert(boardRadius > 0), + assert(hexagonRadius > 0), + assert(hexagonMargin >= 0) { + // Set up the positions for the center hexagon where the entire board is + // centered on the origin. + // Start point of hexagon (top vertex). + final Point hexStart = Point(0, -hexagonRadius); + final double hexagonRadiusPadded = hexagonRadius - hexagonMargin; + final double centerToFlat = sqrt(3) / 2 * hexagonRadiusPadded; + positionsForHexagonAtOrigin.addAll([ + Offset(hexStart.x, hexStart.y), + Offset(hexStart.x + centerToFlat, hexStart.y + 0.5 * hexagonRadiusPadded), + Offset(hexStart.x + centerToFlat, hexStart.y + 1.5 * hexagonRadiusPadded), + Offset(hexStart.x + centerToFlat, hexStart.y + 1.5 * hexagonRadiusPadded), + Offset(hexStart.x, hexStart.y + 2 * hexagonRadiusPadded), + Offset(hexStart.x, hexStart.y + 2 * hexagonRadiusPadded), + Offset(hexStart.x - centerToFlat, hexStart.y + 1.5 * hexagonRadiusPadded), + Offset(hexStart.x - centerToFlat, hexStart.y + 1.5 * hexagonRadiusPadded), + Offset(hexStart.x - centerToFlat, hexStart.y + 0.5 * hexagonRadiusPadded), + ]); + + if (boardPoints != null) { + _boardPoints.addAll(boardPoints); + } else { + // Generate boardPoints for a fresh board. + BoardPoint boardPoint = _getNextBoardPoint(null); + while (boardPoint != null) { + _boardPoints.add(boardPoint); + boardPoint = _getNextBoardPoint(boardPoint); + } + } + } + + final int boardRadius; // Number of hexagons from center to edge. + final double hexagonRadius; // Pixel radius of a hexagon (center to vertex). + final double hexagonMargin; // Margin between hexagons. + final List positionsForHexagonAtOrigin = []; + final BoardPoint selected; + final List _boardPoints = []; + + @override + Iterator get iterator => _BoardIterator(_boardPoints); + + // For a given q axial coordinate, get the range of possible r values + // See the definition of BoardPoint for more information about hex grids and + // axial coordinates. + _Range _getRRangeForQ(int q) { + int rStart; + int rEnd; + if (q <= 0) { + rStart = -boardRadius - q; + rEnd = boardRadius; + } else { + rEnd = boardRadius - q; + rStart = -boardRadius; + } + + return _Range(rStart, rEnd); + } + + // Get the BoardPoint that comes after the given BoardPoint. If given null, + // returns the origin BoardPoint. If given BoardPoint is the last, returns + // null. + BoardPoint _getNextBoardPoint(BoardPoint boardPoint) { + // If before the first element. + if (boardPoint == null) { + return BoardPoint(-boardRadius, 0); + } + + final _Range rRange = _getRRangeForQ(boardPoint.q); + + // If at or after the last element. + if (boardPoint.q >= boardRadius && boardPoint.r >= rRange.max) { + return null; + } + + // If wrapping from one q to the next. + if (boardPoint.r >= rRange.max) { + return BoardPoint(boardPoint.q + 1, _getRRangeForQ(boardPoint.q + 1).min); + } + + // Otherwise we're just incrementing r. + return BoardPoint(boardPoint.q, boardPoint.r + 1); + } + + // Check if the board point is actually on the board. + bool _validateBoardPoint(BoardPoint boardPoint) { + const BoardPoint center = BoardPoint(0, 0); + final int distanceFromCenter = getDistance(center, boardPoint); + return distanceFromCenter <= boardRadius; + } + + // Get the distance between two BoardPoins. + static int getDistance(BoardPoint a, BoardPoint b) { + final Vector3 a3 = a.cubeCoordinates; + final Vector3 b3 = b.cubeCoordinates; + return ((a3.x - b3.x).abs() + (a3.y - b3.y).abs() + (a3.z - b3.z).abs()) ~/ + 2; + } + + // Return the q,r BoardPoint for a point in the scene, where the origin is in + // the center of the board in both coordinate systems. If no BoardPoint at the + // location, return null. + BoardPoint pointToBoardPoint(Offset point) { + final BoardPoint boardPoint = BoardPoint( + ((sqrt(3) / 3 * point.dx - 1 / 3 * point.dy) / hexagonRadius).round(), + ((2 / 3 * point.dy) / hexagonRadius).round(), + ); + + if (!_validateBoardPoint(boardPoint)) { + return null; + } + + return _boardPoints.firstWhere((boardPointI) { + return boardPointI.q == boardPoint.q && boardPointI.r == boardPoint.r; + }); + } + + // Return a scene point for the center of a hexagon given its q,r point. + Point boardPointToPoint(BoardPoint boardPoint) { + return Point( + sqrt(3) * hexagonRadius * boardPoint.q + + sqrt(3) / 2 * hexagonRadius * boardPoint.r, + 1.5 * hexagonRadius * boardPoint.r, + ); + } + + // Get Vertices that can be drawn to a Canvas for the given BoardPoint. + Vertices getVerticesForBoardPoint(BoardPoint boardPoint, Color color) { + final Point centerOfHexZeroCenter = boardPointToPoint(boardPoint); + + final List positions = positionsForHexagonAtOrigin.map((offset) { + return offset.translate(centerOfHexZeroCenter.x, centerOfHexZeroCenter.y); + }).toList(); + + return Vertices( + VertexMode.triangleFan, + positions, + colors: List.filled(positions.length, color), + ); + } + + // Return a new board with the given BoardPoint selected. + Board copyWithSelected(BoardPoint boardPoint) { + if (selected == boardPoint) { + return this; + } + final Board nextBoard = Board( + boardRadius: boardRadius, + hexagonRadius: hexagonRadius, + hexagonMargin: hexagonMargin, + selected: boardPoint, + boardPoints: _boardPoints, + ); + return nextBoard; + } + + // Return a new board where boardPoint has the given color. + Board copyWithBoardPointColor(BoardPoint boardPoint, Color color) { + final BoardPoint nextBoardPoint = boardPoint.copyWithColor(color); + final int boardPointIndex = _boardPoints.indexWhere((boardPointI) => + boardPointI.q == boardPoint.q && boardPointI.r == boardPoint.r); + + if (elementAt(boardPointIndex) == boardPoint && boardPoint.color == color) { + return this; + } + + final List nextBoardPoints = + List.from(_boardPoints); + nextBoardPoints[boardPointIndex] = nextBoardPoint; + final BoardPoint selectedBoardPoint = + boardPoint == selected ? nextBoardPoint : selected; + return Board( + boardRadius: boardRadius, + hexagonRadius: hexagonRadius, + hexagonMargin: hexagonMargin, + selected: selectedBoardPoint, + boardPoints: nextBoardPoints, + ); + } +} + +class _BoardIterator extends Iterator { + _BoardIterator(this.boardPoints); + + final List boardPoints; + int currentIndex; + + @override + BoardPoint current; + + @override + bool moveNext() { + if (currentIndex == null) { + currentIndex = 0; + } else { + currentIndex++; + } + + if (currentIndex >= boardPoints.length) { + current = null; + return false; + } + + current = boardPoints[currentIndex]; + return true; + } +} + +// A range of q/r board coordinate values. +@immutable +class _Range { + const _Range(this.min, this.max) + : assert(min != null), + assert(max != null), + assert(min <= max); + + final int min; + final int max; +} + +// A location on the board in axial coordinates. +// Axial coordinates use two integers, q and r, to locate a hexagon on a grid. +// https://www.redblobgames.com/grids/hexagons/#coordinates-axial +@immutable +class BoardPoint { + const BoardPoint( + this.q, + this.r, { + this.color = const Color(0xFFCDCDCD), + }); + + final int q; + final int r; + final Color color; + + @override + String toString() { + return 'BoardPoint($q, $r, $color)'; + } + + // Only compares by location. + @override + bool operator ==(Object other) { + if (other.runtimeType != runtimeType) { + return false; + } + return other is BoardPoint && other.q == q && other.r == r; + } + + @override + int get hashCode => hashValues(q, r); + + BoardPoint copyWithColor(Color nextColor) => + BoardPoint(q, r, color: nextColor); + + // Convert from q,r axial coords to x,y,z cube coords. + Vector3 get cubeCoordinates { + return Vector3( + q.toDouble(), + r.toDouble(), + (-q - r).toDouble(), + ); + } +} + +// END diff --git a/gallery/gallery/lib/demos/reference/transformations_demo_color_picker.dart b/gallery/gallery/lib/demos/reference/transformations_demo_color_picker.dart new file mode 100644 index 00000000000..709236e7013 --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo_color_picker.dart @@ -0,0 +1,76 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; + +// A generic widget for a list of selectable colors. +@immutable +class ColorPicker extends StatelessWidget { + const ColorPicker({ + @required this.colors, + @required this.selectedColor, + this.onColorSelection, + }) : assert(colors != null), + assert(selectedColor != null); + + final Set colors; + final Color selectedColor; + final ValueChanged onColorSelection; + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: colors.map((color) { + return _ColorPickerSwatch( + color: color, + selected: color == selectedColor, + onTap: () { + if (onColorSelection != null) { + onColorSelection(color); + } + }, + ); + }).toList(), + ); + } +} + +// A single selectable color widget in the ColorPicker. +@immutable +class _ColorPickerSwatch extends StatelessWidget { + const _ColorPickerSwatch({ + @required this.color, + @required this.selected, + this.onTap, + }) : assert(color != null), + assert(selected != null); + + final Color color; + final bool selected; + final Function onTap; + + @override + Widget build(BuildContext context) { + return Container( + width: 60, + height: 60, + padding: const EdgeInsets.fromLTRB(2, 0, 2, 0), + child: RawMaterialButton( + fillColor: color, + onPressed: () { + if (onTap != null) { + onTap(); + } + }, + child: !selected + ? null + : const Icon( + Icons.check, + color: Colors.white, + ), + ), + ); + } +} diff --git a/gallery/gallery/lib/demos/reference/transformations_demo_edit_board_point.dart b/gallery/gallery/lib/demos/reference/transformations_demo_edit_board_point.dart new file mode 100644 index 00000000000..2350079f5c1 --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo_edit_board_point.dart @@ -0,0 +1,53 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import 'package:gallery/themes/gallery_theme_data.dart'; +import 'transformations_demo_board.dart'; +import 'transformations_demo_color_picker.dart'; + +final backgroundColor = Color(0xFF272727); + +// The panel for editing a board point. +@immutable +class EditBoardPoint extends StatelessWidget { + const EditBoardPoint({ + Key key, + @required this.boardPoint, + this.onColorSelection, + }) : assert(boardPoint != null), + super(key: key); + + final BoardPoint boardPoint; + final ValueChanged onColorSelection; + + @override + Widget build(BuildContext context) { + print(GalleryThemeData.darkColorScheme); + + final boardPointColors = { + Colors.white, + GalleryThemeData.darkColorScheme.primary, + GalleryThemeData.darkColorScheme.primaryVariant, + GalleryThemeData.darkColorScheme.secondary, + backgroundColor, + }; + + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + '${boardPoint.q}, ${boardPoint.r}', + textAlign: TextAlign.right, + style: const TextStyle(fontWeight: FontWeight.bold), + ), + ColorPicker( + colors: boardPointColors, + selectedColor: boardPoint.color, + onColorSelection: onColorSelection, + ), + ], + ); + } +} diff --git a/gallery/gallery/lib/demos/reference/transformations_demo_gesture_transformable.dart b/gallery/gallery/lib/demos/reference/transformations_demo_gesture_transformable.dart new file mode 100644 index 00000000000..3b2f21d2a51 --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo_gesture_transformable.dart @@ -0,0 +1,620 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import 'package:vector_math/vector_math_64.dart' show Vector3; +import 'transformations_demo_inertial_motion.dart'; + +// BEGIN transformationsDemo#3 + +// This widget allows 2D transform interactions on its child in relation to its +// parent. The user can transform the child by dragging to pan or pinching to +// zoom and rotate. All event callbacks for GestureDetector are supported, and +// the coordinates that are given are untransformed and in relation to the +// original position of the child. +@immutable +class GestureTransformable extends StatefulWidget { + const GestureTransformable({ + Key key, + // The child to perform the transformations on. + @required this.child, + // The desired visible size of the widget and the area that is receptive to + // gestures. If a widget that's as big as possible is desired, then wrap + // this in a LayoutBuilder and pass + // `Size(constraints.maxWidth, constraints.maxHeight)`. + @required this.size, + // The scale will be clamped to between these values. A maxScale of null has + // no bounds. minScale must be greater than zero. + this.maxScale = 2.5, + this.minScale = 0.8, + // Transforms will be limited so that the viewport can not view beyond this + // Rect. The Rect does not rotate with the rest of the scene, so it is + // always aligned with the viewport. A null boundaryRect results in no + // limits to the distance that the viewport can be transformed to see. + this.boundaryRect, + // Initial values for the transform can be provided. + this.initialTranslation, + this.initialScale, + this.initialRotation, + // Any and all of the possible transformations can be disabled. + this.disableTranslation = false, + this.disableScale = false, + this.disableRotation = false, + // If set to true, this widget will animate back to its initial transform + // and call onResetEnd when done. When utilizing reset, onResetEnd should + // also be implemented, and it should set reset to false when called. + this.reset = false, + // Access to event callbacks from GestureDetector. Called with untransformed + // coordinates in an Offset. + this.onTapDown, + this.onTapUp, + this.onTap, + this.onTapCancel, + this.onDoubleTap, + this.onLongPress, + this.onLongPressUp, + this.onVerticalDragDown, + this.onVerticalDragStart, + this.onVerticalDragUpdate, + this.onVerticalDragEnd, + this.onVerticalDragCancel, + this.onHorizontalDragDown, + this.onHorizontalDragStart, + this.onHorizontalDragUpdate, + this.onHorizontalDragEnd, + this.onHorizontalDragCancel, + this.onPanDown, + this.onPanStart, + this.onPanUpdate, + this.onPanEnd, + this.onPanCancel, + this.onResetEnd, + this.onScaleStart, + this.onScaleUpdate, + this.onScaleEnd, + }) : assert(child != null), + assert(size != null), + assert(minScale != null), + assert(minScale > 0), + assert(disableTranslation != null), + assert(disableScale != null), + assert(disableRotation != null), + assert(reset != null), + assert( + !reset || onResetEnd != null, + 'Must implement onResetEnd to use reset.', + ), + super(key: key); + + final Widget child; + final Size size; + final bool reset; + final GestureTapDownCallback onTapDown; + final GestureTapUpCallback onTapUp; + final GestureTapCallback onTap; + final GestureTapCancelCallback onTapCancel; + final GestureTapCallback onDoubleTap; + final GestureLongPressCallback onLongPress; + final GestureLongPressUpCallback onLongPressUp; + final GestureDragDownCallback onVerticalDragDown; + final GestureDragStartCallback onVerticalDragStart; + final GestureDragUpdateCallback onVerticalDragUpdate; + final GestureDragEndCallback onVerticalDragEnd; + final GestureDragCancelCallback onVerticalDragCancel; + final GestureDragDownCallback onHorizontalDragDown; + final GestureDragStartCallback onHorizontalDragStart; + final GestureDragUpdateCallback onHorizontalDragUpdate; + final GestureDragEndCallback onHorizontalDragEnd; + final GestureDragCancelCallback onHorizontalDragCancel; + final GestureDragDownCallback onPanDown; + final GestureDragStartCallback onPanStart; + final GestureDragUpdateCallback onPanUpdate; + final GestureDragEndCallback onPanEnd; + final GestureDragCancelCallback onPanCancel; + final VoidCallback onResetEnd; + final GestureScaleStartCallback onScaleStart; + final GestureScaleUpdateCallback onScaleUpdate; + final GestureScaleEndCallback onScaleEnd; + final double maxScale; + final double minScale; + final Rect boundaryRect; + final bool disableTranslation; + final bool disableScale; + final bool disableRotation; + final Offset initialTranslation; + final double initialScale; + final double initialRotation; + + @override + _GestureTransformableState createState() => _GestureTransformableState(); +} + +// A single user event can only represent one of these gestures. The user can't +// do multiple at the same time, which results in more precise transformations. +enum _GestureType { + translate, + scale, + rotate, +} + +// This is public only for access from a unit test. +class _GestureTransformableState extends State + with TickerProviderStateMixin { + Animation _animation; + AnimationController _controller; + Animation _animationReset; + AnimationController _controllerReset; + // The translation that will be applied to the scene (not viewport). + // A positive x offset moves the scene right, viewport left. + // A positive y offset moves the scene down, viewport up. + Offset _translateFromScene; // Point where a single translation began. + double _scaleStart; // Scale value at start of scaling gesture. + double _rotationStart = 0; // Rotation at start of rotation gesture. + Rect _boundaryRect; + Matrix4 _transform = Matrix4.identity(); + double _currentRotation = 0; + _GestureType gestureType; + + // The transformation matrix that gives the initial home position. + Matrix4 get _initialTransform { + Matrix4 matrix = Matrix4.identity(); + if (widget.initialTranslation != null) { + matrix = matrixTranslate(matrix, widget.initialTranslation); + } + if (widget.initialScale != null) { + matrix = matrixScale(matrix, widget.initialScale); + } + if (widget.initialRotation != null) { + matrix = matrixRotate(matrix, widget.initialRotation, Offset.zero); + } + return matrix; + } + + // Return the scene point at the given viewport point. + static Offset fromViewport(Offset viewportPoint, Matrix4 transform) { + // On viewportPoint, perform the inverse transformation of the scene to get + // where the point would be in the scene before the transformation. + final Matrix4 inverseMatrix = Matrix4.inverted(transform); + final Vector3 untransformed = inverseMatrix.transform3(Vector3( + viewportPoint.dx, + viewportPoint.dy, + 0, + )); + return Offset(untransformed.x, untransformed.y); + } + + // Get the offset of the current widget from the global screen coordinates. + // TODO(justinmc): Protect against calling this during first build. + static Offset getOffset(BuildContext context) { + final RenderBox renderObject = context.findRenderObject() as RenderBox; + return renderObject.localToGlobal(Offset.zero); + } + + @override + void initState() { + super.initState(); + _boundaryRect = widget.boundaryRect ?? Offset.zero & widget.size; + _transform = _initialTransform; + _controller = AnimationController( + vsync: this, + ); + _controllerReset = AnimationController( + vsync: this, + ); + if (widget.reset) { + _animateResetInitialize(); + } + } + + @override + void didUpdateWidget(GestureTransformable oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.reset && !oldWidget.reset && _animationReset == null) { + _animateResetInitialize(); + } else if (!widget.reset && oldWidget.reset && _animationReset != null) { + _animateResetStop(); + } + } + + @override + Widget build(BuildContext context) { + // A GestureDetector allows the detection of panning and zooming gestures on + // its child, which is the CustomPaint. + return GestureDetector( + behavior: HitTestBehavior.opaque, // Necessary when translating off screen + onTapDown: widget.onTapDown == null + ? null + : (details) { + widget.onTapDown(TapDownDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onTapUp: widget.onTapUp == null + ? null + : (details) { + widget.onTapUp(TapUpDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onTap: widget.onTap, + onTapCancel: widget.onTapCancel, + onDoubleTap: widget.onDoubleTap, + onLongPress: widget.onLongPress, + onLongPressUp: widget.onLongPressUp, + onVerticalDragDown: widget.onVerticalDragDown == null + ? null + : (details) { + widget.onVerticalDragDown(DragDownDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onVerticalDragStart: widget.onVerticalDragStart == null + ? null + : (details) { + widget.onVerticalDragStart(DragStartDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onVerticalDragUpdate: widget.onVerticalDragUpdate == null + ? null + : (details) { + widget.onVerticalDragUpdate(DragUpdateDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onVerticalDragEnd: widget.onVerticalDragEnd, + onVerticalDragCancel: widget.onVerticalDragCancel, + onHorizontalDragDown: widget.onHorizontalDragDown == null + ? null + : (details) { + widget.onHorizontalDragDown(DragDownDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onHorizontalDragStart: widget.onHorizontalDragStart == null + ? null + : (details) { + widget.onHorizontalDragStart(DragStartDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onHorizontalDragUpdate: widget.onHorizontalDragUpdate == null + ? null + : (details) { + widget.onHorizontalDragUpdate(DragUpdateDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onHorizontalDragEnd: widget.onHorizontalDragEnd, + onHorizontalDragCancel: widget.onHorizontalDragCancel, + onPanDown: widget.onPanDown == null + ? null + : (details) { + widget.onPanDown(DragDownDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onPanStart: widget.onPanStart == null + ? null + : (details) { + widget.onPanStart(DragStartDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onPanUpdate: widget.onPanUpdate == null + ? null + : (details) { + widget.onPanUpdate(DragUpdateDetails( + globalPosition: fromViewport( + details.globalPosition - getOffset(context), _transform), + )); + }, + onPanEnd: widget.onPanEnd, + onPanCancel: widget.onPanCancel, + onScaleEnd: _onScaleEnd, + onScaleStart: _onScaleStart, + onScaleUpdate: _onScaleUpdate, + child: ClipRect( + // The scene is panned/zoomed/rotated using this Transform widget. + child: Transform( + transform: _transform, + child: Container( + child: widget.child, + height: widget.size.height, + width: widget.size.width, + ), + ), + ), + ); + } + + // Return a new matrix representing the given matrix after applying the given + // translation. + Matrix4 matrixTranslate(Matrix4 matrix, Offset translation) { + if (widget.disableTranslation || translation == Offset.zero) { + return matrix; + } + + // Clamp translation so the viewport remains inside _boundaryRect. + final double scale = _transform.getMaxScaleOnAxis(); + final Size scaledSize = widget.size / scale; + final Rect viewportBoundaries = Rect.fromLTRB( + _boundaryRect.left, + _boundaryRect.top, + _boundaryRect.right - scaledSize.width, + _boundaryRect.bottom - scaledSize.height, + ); + // Translation is reversed (a positive translation moves the scene to the + // right, viewport to the left). + final Rect translationBoundaries = Rect.fromLTRB( + -scale * viewportBoundaries.right, + -scale * viewportBoundaries.bottom, + -scale * viewportBoundaries.left, + -scale * viewportBoundaries.top, + ); + final Matrix4 nextMatrix = matrix.clone() + ..translate( + translation.dx, + translation.dy, + ); + final Vector3 nextTranslationVector = nextMatrix.getTranslation(); + final Offset nextTranslation = Offset( + nextTranslationVector.x, + nextTranslationVector.y, + ); + final bool inBoundaries = translationBoundaries.contains( + Offset(nextTranslation.dx, nextTranslation.dy), + ); + if (!inBoundaries) { + // TODO(justinmc): Instead of canceling translation when it goes out of + // bounds, stop translation at boundary. + return matrix; + } + + return nextMatrix; + } + + // Return a new matrix representing the given matrix after applying the given + // scale transform. + Matrix4 matrixScale(Matrix4 matrix, double scale) { + if (widget.disableScale || scale == 1) { + return matrix; + } + assert(scale != 0); + + // Don't allow a scale that moves the viewport outside of _boundaryRect. + final Offset tl = fromViewport(const Offset(0, 0), _transform); + final Offset tr = fromViewport(Offset(widget.size.width, 0), _transform); + final Offset bl = fromViewport(Offset(0, widget.size.height), _transform); + final Offset br = fromViewport( + Offset(widget.size.width, widget.size.height), + _transform, + ); + if (!_boundaryRect.contains(tl) || + !_boundaryRect.contains(tr) || + !_boundaryRect.contains(bl) || + !_boundaryRect.contains(br)) { + return matrix; + } + + // Don't allow a scale that results in an overall scale beyond min/max + // scale. + final double currentScale = _transform.getMaxScaleOnAxis(); + final double totalScale = currentScale * scale; + final double clampedTotalScale = totalScale.clamp( + widget.minScale, + widget.maxScale, + ) as double; + final double clampedScale = clampedTotalScale / currentScale; + return matrix..scale(clampedScale); + } + + // Return a new matrix representing the given matrix after applying the given + // rotation transform. + // Rotating the scene cannot cause the viewport to view beyond _boundaryRect. + Matrix4 matrixRotate(Matrix4 matrix, double rotation, Offset focalPoint) { + if (widget.disableRotation || rotation == 0) { + return matrix; + } + final Offset focalPointScene = fromViewport(focalPoint, matrix); + return matrix + ..translate(focalPointScene.dx, focalPointScene.dy) + ..rotateZ(-rotation) + ..translate(-focalPointScene.dx, -focalPointScene.dy); + } + + // Handle the start of a gesture of _GestureType. + void _onScaleStart(ScaleStartDetails details) { + if (widget.onScaleStart != null) { + widget.onScaleStart(details); + } + + if (_controller.isAnimating) { + _controller.stop(); + _controller.reset(); + _animation?.removeListener(_onAnimate); + _animation = null; + } + if (_controllerReset.isAnimating) { + _animateResetStop(); + } + + gestureType = null; + setState(() { + _scaleStart = _transform.getMaxScaleOnAxis(); + _translateFromScene = fromViewport(details.focalPoint, _transform); + _rotationStart = _currentRotation; + }); + } + + // Handle an update to an ongoing gesture of _GestureType. + void _onScaleUpdate(ScaleUpdateDetails details) { + double scale = _transform.getMaxScaleOnAxis(); + if (widget.onScaleUpdate != null) { + widget.onScaleUpdate(ScaleUpdateDetails( + focalPoint: fromViewport(details.focalPoint, _transform), + scale: details.scale, + rotation: details.rotation, + )); + } + final Offset focalPointScene = fromViewport( + details.focalPoint, + _transform, + ); + if (gestureType == null) { + // Decide which type of gesture this is by comparing the amount of scale + // and rotation in the gesture, if any. Scale starts at 1 and rotation + // starts at 0. Translate will have 0 scale and 0 rotation because it uses + // only one finger. + if ((details.scale - 1).abs() > details.rotation.abs()) { + gestureType = _GestureType.scale; + } else if (details.rotation != 0) { + gestureType = _GestureType.rotate; + } else { + gestureType = _GestureType.translate; + } + } + setState(() { + if (gestureType == _GestureType.scale && _scaleStart != null) { + // details.scale gives us the amount to change the scale as of the + // start of this gesture, so calculate the amount to scale as of the + // previous call to _onScaleUpdate. + final double desiredScale = _scaleStart * details.scale; + final double scaleChange = desiredScale / scale; + _transform = matrixScale(_transform, scaleChange); + scale = _transform.getMaxScaleOnAxis(); + + // While scaling, translate such that the user's two fingers stay on the + // same places in the scene. That means that the focal point of the + // scale should be on the same place in the scene before and after the + // scale. + final Offset focalPointSceneNext = fromViewport( + details.focalPoint, + _transform, + ); + _transform = + matrixTranslate(_transform, focalPointSceneNext - focalPointScene); + } else if (gestureType == _GestureType.rotate && details.rotation != 0) { + final double desiredRotation = _rotationStart + details.rotation; + _transform = matrixRotate( + _transform, _currentRotation - desiredRotation, details.focalPoint); + _currentRotation = desiredRotation; + } else if (_translateFromScene != null && details.scale == 1) { + // Translate so that the same point in the scene is underneath the + // focal point before and after the movement. + final Offset translationChange = focalPointScene - _translateFromScene; + _transform = matrixTranslate(_transform, translationChange); + _translateFromScene = fromViewport(details.focalPoint, _transform); + } + }); + } + + // Handle the end of a gesture of _GestureType. + void _onScaleEnd(ScaleEndDetails details) { + if (widget.onScaleEnd != null) { + widget.onScaleEnd(details); + } + setState(() { + _scaleStart = null; + _rotationStart = null; + _translateFromScene = null; + }); + + _animation?.removeListener(_onAnimate); + _controller.reset(); + + // If the scale ended with velocity, animate inertial movement + final double velocityTotal = details.velocity.pixelsPerSecond.dx.abs() + + details.velocity.pixelsPerSecond.dy.abs(); + if (velocityTotal == 0) { + return; + } + + final Vector3 translationVector = _transform.getTranslation(); + final Offset translation = Offset(translationVector.x, translationVector.y); + final InertialMotion inertialMotion = + InertialMotion(details.velocity, translation); + _animation = Tween( + begin: translation, + end: inertialMotion.finalPosition, + ).animate(_controller); + _controller.duration = + Duration(milliseconds: inertialMotion.duration.toInt()); + _animation.addListener(_onAnimate); + _controller.fling(); + } + + // Handle inertia drag animation. + void _onAnimate() { + setState(() { + // Translate _transform such that the resulting translation is + // _animation.value. + final Vector3 translationVector = _transform.getTranslation(); + final Offset translation = + Offset(translationVector.x, translationVector.y); + final Offset translationScene = fromViewport(translation, _transform); + final Offset animationScene = fromViewport(_animation.value, _transform); + final Offset translationChangeScene = animationScene - translationScene; + _transform = matrixTranslate(_transform, translationChangeScene); + }); + if (!_controller.isAnimating) { + _animation?.removeListener(_onAnimate); + _animation = null; + _controller.reset(); + } + } + + // Handle reset to home transform animation. + void _onAnimateReset() { + setState(() { + _transform = _animationReset.value; + }); + if (!_controllerReset.isAnimating) { + _animationReset?.removeListener(_onAnimateReset); + _animationReset = null; + _controllerReset.reset(); + widget.onResetEnd(); + } + } + + // Initialize the reset to home transform animation. + void _animateResetInitialize() { + _controllerReset.reset(); + _animationReset = Matrix4Tween( + begin: _transform, + end: _initialTransform, + ).animate(_controllerReset); + _controllerReset.duration = const Duration(milliseconds: 400); + _animationReset.addListener(_onAnimateReset); + _controllerReset.forward(); + } + + // Stop a running reset to home transform animation. + void _animateResetStop() { + _controllerReset.stop(); + _animationReset?.removeListener(_onAnimateReset); + _animationReset = null; + _controllerReset.reset(); + widget.onResetEnd(); + } + + @override + void dispose() { + _controller.dispose(); + _controllerReset.dispose(); + super.dispose(); + } +} + +// END diff --git a/gallery/gallery/lib/demos/reference/transformations_demo_inertial_motion.dart b/gallery/gallery/lib/demos/reference/transformations_demo_inertial_motion.dart new file mode 100644 index 00000000000..82bfb5b5c44 --- /dev/null +++ b/gallery/gallery/lib/demos/reference/transformations_demo_inertial_motion.dart @@ -0,0 +1,72 @@ +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:math'; +import 'package:flutter/material.dart'; +import 'package:vector_math/vector_math.dart' show Vector2; + +// Provides calculations for an object moving with inertia and friction using +// the equation of motion from physics. +// https://en.wikipedia.org/wiki/Equations_of_motion#Constant_translational_acceleration_in_a_straight_line +// TODO(justinmc): Can this be replaced with friction_simulation.dart? +@immutable +class InertialMotion { + const InertialMotion(this._initialVelocity, this._initialPosition); + + static const double _kFrictionalAcceleration = 0.01; // How quickly to stop + final Velocity _initialVelocity; + final Offset _initialPosition; + + // The position when the motion stops. + Offset get finalPosition { + return _getPositionAt(Duration(milliseconds: duration.toInt())); + } + + // The total time that the animation takes start to stop in milliseconds. + double get duration { + return (_initialVelocity.pixelsPerSecond.dx / 1000 / _acceleration.x).abs(); + } + + // The acceleration opposing the initial velocity in x and y components. + Vector2 get _acceleration { + // TODO(justinmc): Find actual velocity instead of summing? + final velocityTotal = _initialVelocity.pixelsPerSecond.dx.abs() + + _initialVelocity.pixelsPerSecond.dy.abs(); + final vRatioX = _initialVelocity.pixelsPerSecond.dx / velocityTotal; + final vRatioY = _initialVelocity.pixelsPerSecond.dy / velocityTotal; + return Vector2( + _kFrictionalAcceleration * vRatioX, + _kFrictionalAcceleration * vRatioY, + ); + } + + // The position at a given time. + Offset _getPositionAt(Duration time) { + final xf = _getPosition( + r0: _initialPosition.dx, + v0: _initialVelocity.pixelsPerSecond.dx / 1000, + t: time.inMilliseconds, + a: _acceleration.x, + ); + final yf = _getPosition( + r0: _initialPosition.dy, + v0: _initialVelocity.pixelsPerSecond.dy / 1000, + t: time.inMilliseconds, + a: _acceleration.y, + ); + return Offset(xf, yf); + } + + // Solve the equation of motion to find the position at a given point in time + // in one dimension. + double _getPosition({double r0, double v0, int t, double a}) { + // Stop movement when it would otherwise reverse direction. + final stopTime = (v0 / a).abs(); + if (t > stopTime) { + t = stopTime.toInt(); + } + + return r0 + v0 * t + 0.5 * a * pow(t, 2); + } +} diff --git a/gallery/gallery/lib/demos/reference/typography_demo.dart b/gallery/gallery/lib/demos/reference/typography_demo.dart index 4cad77376cc..4160bf33325 100644 --- a/gallery/gallery/lib/demos/reference/typography_demo.dart +++ b/gallery/gallery/lib/demos/reference/typography_demo.dart @@ -47,7 +47,7 @@ class TypographyDemo extends StatelessWidget { @override Widget build(BuildContext context) { final textTheme = Theme.of(context).textTheme; - final styleItems = [ + final styleItems = [ _TextStyleItem( name: 'Display 4', style: textTheme.display4, diff --git a/gallery/gallery/lib/feature_discovery/feature_discovery.dart b/gallery/gallery/lib/feature_discovery/feature_discovery.dart index 7fa663a3b02..2cb71e9ccd8 100644 --- a/gallery/gallery/lib/feature_discovery/feature_discovery.dart +++ b/gallery/gallery/lib/feature_discovery/feature_discovery.dart @@ -153,7 +153,7 @@ class _FeatureDiscoveryState extends State key: FeatureDiscovery.overlayKey, type: MaterialType.transparency, child: Stack( - children: [ + children: [ GestureDetector( key: FeatureDiscovery.gestureDetectorKey, onTap: dismiss, diff --git a/gallery/gallery/lib/feature_discovery/overlay.dart b/gallery/gallery/lib/feature_discovery/overlay.dart index e363186b798..a55c981b5cb 100644 --- a/gallery/gallery/lib/feature_discovery/overlay.dart +++ b/gallery/gallery/lib/feature_discovery/overlay.dart @@ -220,7 +220,7 @@ class Content extends StatelessWidget { opacity: opacity, child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ _buildTitle(textTheme), SizedBox(height: 12.0), _buildDescription(textTheme), diff --git a/gallery/gallery/lib/l10n/gallery_localizations.dart b/gallery/gallery/lib/l10n/gallery_localizations.dart index 7d76bc0f3bb..f0f2bc43ed3 100644 --- a/gallery/gallery/lib/l10n/gallery_localizations.dart +++ b/gallery/gallery/lib/l10n/gallery_localizations.dart @@ -97,7 +97,6 @@ class GalleryLocalizations { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ - Locale('en', 'US'), Locale('af'), Locale('am'), Locale('ar'), @@ -125,6 +124,7 @@ class GalleryLocalizations { Locale('en', 'IN'), Locale('en', 'NZ'), Locale('en', 'SG'), + Locale('en', 'US'), Locale('en', 'ZA'), Locale('es'), Locale('es', '419'), @@ -219,7 +219,7 @@ class GalleryLocalizations { String aboutDialogDescription(Object value) { return Intl.message( - 'To see the source code for this app, please visit the $value.', + r'To see the source code for this app, please visit the $value.', locale: _localeName, name: 'aboutDialogDescription', desc: r'A description about how to view the source code for this app.', @@ -227,14 +227,14 @@ class GalleryLocalizations { } String get aboutFlutterSamplesRepo { - return Intl.message('Flutter samples Github repo', + return Intl.message(r'Flutter samples Github repo', locale: _localeName, name: 'aboutFlutterSamplesRepo', desc: r'Represents a link to the Flutter samples github repository.'); } String get backToGallery { - return Intl.message('Back to Gallery', + return Intl.message(r'Back to Gallery', locale: _localeName, name: 'backToGallery', desc: @@ -242,7 +242,7 @@ class GalleryLocalizations { } String get bannerDemoLeadingText { - return Intl.message('Leading Icon', + return Intl.message(r'Leading Icon', locale: _localeName, name: 'bannerDemoLeadingText', desc: @@ -250,7 +250,7 @@ class GalleryLocalizations { } String get bannerDemoMultipleText { - return Intl.message('Multiple actions', + return Intl.message(r'Multiple actions', locale: _localeName, name: 'bannerDemoMultipleText', desc: @@ -258,7 +258,7 @@ class GalleryLocalizations { } String get bannerDemoResetText { - return Intl.message('Reset the banner', + return Intl.message(r'Reset the banner', locale: _localeName, name: 'bannerDemoResetText', desc: r'Show the Banner to the user again.'); @@ -266,7 +266,7 @@ class GalleryLocalizations { String get bannerDemoText { return Intl.message( - 'Your password was updated on your other device. Please sign in again.', + r'Your password was updated on your other device. Please sign in again.', locale: _localeName, name: 'bannerDemoText', desc: @@ -274,7 +274,7 @@ class GalleryLocalizations { } String get bottomAppBarNotch { - return Intl.message('Notch', + return Intl.message(r'Notch', locale: _localeName, name: 'bottomAppBarNotch', desc: @@ -282,7 +282,7 @@ class GalleryLocalizations { } String get bottomAppBarPosition { - return Intl.message('Floating Action Button Position', + return Intl.message(r'Floating Action Button Position', locale: _localeName, name: 'bottomAppBarPosition', desc: @@ -290,7 +290,7 @@ class GalleryLocalizations { } String get bottomAppBarPositionDockedCenter { - return Intl.message('Docked - Center', + return Intl.message(r'Docked - Center', locale: _localeName, name: 'bottomAppBarPositionDockedCenter', desc: @@ -298,7 +298,7 @@ class GalleryLocalizations { } String get bottomAppBarPositionDockedEnd { - return Intl.message('Docked - End', + return Intl.message(r'Docked - End', locale: _localeName, name: 'bottomAppBarPositionDockedEnd', desc: @@ -306,7 +306,7 @@ class GalleryLocalizations { } String get bottomAppBarPositionFloatingCenter { - return Intl.message('Floating - Center', + return Intl.message(r'Floating - Center', locale: _localeName, name: 'bottomAppBarPositionFloatingCenter', desc: @@ -314,7 +314,7 @@ class GalleryLocalizations { } String get bottomAppBarPositionFloatingEnd { - return Intl.message('Floating - End', + return Intl.message(r'Floating - End', locale: _localeName, name: 'bottomAppBarPositionFloatingEnd', desc: @@ -322,42 +322,42 @@ class GalleryLocalizations { } String get bottomNavigationAccountTab { - return Intl.message('Account', + return Intl.message(r'Account', locale: _localeName, name: 'bottomNavigationAccountTab', desc: r'Title for Account tab of bottom navigation.'); } String get bottomNavigationAlarmTab { - return Intl.message('Alarm', + return Intl.message(r'Alarm', locale: _localeName, name: 'bottomNavigationAlarmTab', desc: r'Title for Alarm tab of bottom navigation.'); } String get bottomNavigationCalendarTab { - return Intl.message('Calendar', + return Intl.message(r'Calendar', locale: _localeName, name: 'bottomNavigationCalendarTab', desc: r'Title for Calendar tab of bottom navigation.'); } String get bottomNavigationCameraTab { - return Intl.message('Camera', + return Intl.message(r'Camera', locale: _localeName, name: 'bottomNavigationCameraTab', desc: r'Title for Camera tab of bottom navigation.'); } String get bottomNavigationCommentsTab { - return Intl.message('Comments', + return Intl.message(r'Comments', locale: _localeName, name: 'bottomNavigationCommentsTab', desc: r'Title for Comments tab of bottom navigation.'); } String bottomNavigationContentPlaceholder(Object title) { - return Intl.message('Placeholder for $title tab', + return Intl.message(r'Placeholder for $title tab', locale: _localeName, name: 'bottomNavigationContentPlaceholder', desc: @@ -366,28 +366,28 @@ class GalleryLocalizations { } String get buttonText { - return Intl.message('BUTTON', + return Intl.message(r'BUTTON', locale: _localeName, name: 'buttonText', desc: r'Text for a generic button.'); } String get buttonTextCreate { - return Intl.message('Create', + return Intl.message(r'Create', locale: _localeName, name: 'buttonTextCreate', desc: r'Tooltip text for a create button.'); } String get cardsDemoExplore { - return Intl.message('Explore', + return Intl.message(r'Explore', locale: _localeName, name: 'cardsDemoExplore', desc: r'Click to see more about the content in the cards demo.'); } String cardsDemoExploreSemantics(Object destinationName) { - return Intl.message('Explore $destinationName', + return Intl.message(r'Explore $destinationName', locale: _localeName, name: 'cardsDemoExploreSemantics', desc: @@ -396,7 +396,7 @@ class GalleryLocalizations { } String get cardsDemoSelectable { - return Intl.message('Selectable (long press)', + return Intl.message(r'Selectable (long press)', locale: _localeName, name: 'cardsDemoSelectable', desc: @@ -404,7 +404,7 @@ class GalleryLocalizations { } String cardsDemoShareSemantics(Object destinationName) { - return Intl.message('Share $destinationName', + return Intl.message(r'Share $destinationName', locale: _localeName, name: 'cardsDemoShareSemantics', desc: @@ -413,410 +413,410 @@ class GalleryLocalizations { } String get cardsDemoTappable { - return Intl.message('Tappable', + return Intl.message(r'Tappable', locale: _localeName, name: 'cardsDemoTappable', desc: r'The user can tap this button'); } String get cardsDemoTravelDestinationCity1 { - return Intl.message('Thanjavur', + return Intl.message(r'Thanjavur', locale: _localeName, name: 'cardsDemoTravelDestinationCity1', desc: r'Thanjavur the city'); } String get cardsDemoTravelDestinationCity2 { - return Intl.message('Chettinad', + return Intl.message(r'Chettinad', locale: _localeName, name: 'cardsDemoTravelDestinationCity2', desc: r'Chettinad the city'); } String get cardsDemoTravelDestinationDescription1 { - return Intl.message('Number 10', + return Intl.message(r'Number 10', locale: _localeName, name: 'cardsDemoTravelDestinationDescription1', desc: r'Number 10'); } String get cardsDemoTravelDestinationDescription2 { - return Intl.message('Silk Spinners', + return Intl.message(r'Silk Spinners', locale: _localeName, name: 'cardsDemoTravelDestinationDescription2', desc: r'Silk Spinners'); } String get cardsDemoTravelDestinationDescription3 { - return Intl.message('Temples', + return Intl.message(r'Temples', locale: _localeName, name: 'cardsDemoTravelDestinationDescription3', desc: r'Temples'); } String get cardsDemoTravelDestinationLocation1 { - return Intl.message('Thanjavur, Tamil Nadu', + return Intl.message(r'Thanjavur, Tamil Nadu', locale: _localeName, name: 'cardsDemoTravelDestinationLocation1', desc: r'Thanjavur, Tamil Nadu is a location'); } String get cardsDemoTravelDestinationLocation2 { - return Intl.message('Sivaganga, Tamil Nadu', + return Intl.message(r'Sivaganga, Tamil Nadu', locale: _localeName, name: 'cardsDemoTravelDestinationLocation2', desc: r'Sivaganga, Tamil Nadu is a location'); } String get cardsDemoTravelDestinationTitle1 { - return Intl.message('Top 10 Cities to Visit in Tamil Nadu', + return Intl.message(r'Top 10 Cities to Visit in Tamil Nadu', locale: _localeName, name: 'cardsDemoTravelDestinationTitle1', desc: r'The top 10 cities that you can visit in Tamil Nadu'); } String get cardsDemoTravelDestinationTitle2 { - return Intl.message('Artisans of Southern India', + return Intl.message(r'Artisans of Southern India', locale: _localeName, name: 'cardsDemoTravelDestinationTitle2', desc: r'Artist that are from Southern India'); } String get cardsDemoTravelDestinationTitle3 { - return Intl.message('Brihadisvara Temple', + return Intl.message(r'Brihadisvara Temple', locale: _localeName, name: 'cardsDemoTravelDestinationTitle3', desc: r'Brihadisvara Temple'); } String get chipBiking { - return Intl.message('Biking', + return Intl.message(r'Biking', locale: _localeName, name: 'chipBiking', desc: r'A chip component to that indicates a biking selection.'); } String get chipElevator { - return Intl.message('Elevator', + return Intl.message(r'Elevator', locale: _localeName, name: 'chipElevator', desc: r'A chip component to filter selection by elevators.'); } String get chipFireplace { - return Intl.message('Fireplace', + return Intl.message(r'Fireplace', locale: _localeName, name: 'chipFireplace', desc: r'A chip component to filter selection by fireplaces.'); } String get chipLarge { - return Intl.message('Large', + return Intl.message(r'Large', locale: _localeName, name: 'chipLarge', desc: r'A chip component to select a large size.'); } String get chipMedium { - return Intl.message('Medium', + return Intl.message(r'Medium', locale: _localeName, name: 'chipMedium', desc: r'A chip component to select a medium size.'); } String get chipSmall { - return Intl.message('Small', + return Intl.message(r'Small', locale: _localeName, name: 'chipSmall', desc: r'A chip component to select a small size.'); } String get chipTurnOnLights { - return Intl.message('Turn on lights', + return Intl.message(r'Turn on lights', locale: _localeName, name: 'chipTurnOnLights', desc: r'A chip component to turn on the lights.'); } String get chipWasher { - return Intl.message('Washer', + return Intl.message(r'Washer', locale: _localeName, name: 'chipWasher', desc: r'A chip component to filter selection by washers.'); } String get colorsAmber { - return Intl.message('AMBER', + return Intl.message(r'AMBER', locale: _localeName, name: 'colorsAmber', desc: r'Tab title for the color amber.'); } String get colorsBlue { - return Intl.message('BLUE', + return Intl.message(r'BLUE', locale: _localeName, name: 'colorsBlue', desc: r'Tab title for the color blue.'); } String get colorsBlueGrey { - return Intl.message('BLUE GREY', + return Intl.message(r'BLUE GREY', locale: _localeName, name: 'colorsBlueGrey', desc: r'Tab title for the color blue grey.'); } String get colorsBrown { - return Intl.message('BROWN', + return Intl.message(r'BROWN', locale: _localeName, name: 'colorsBrown', desc: r'Tab title for the color brown.'); } String get colorsCyan { - return Intl.message('CYAN', + return Intl.message(r'CYAN', locale: _localeName, name: 'colorsCyan', desc: r'Tab title for the color cyan.'); } String get colorsDeepOrange { - return Intl.message('DEEP ORANGE', + return Intl.message(r'DEEP ORANGE', locale: _localeName, name: 'colorsDeepOrange', desc: r'Tab title for the color deep orange.'); } String get colorsDeepPurple { - return Intl.message('DEEP PURPLE', + return Intl.message(r'DEEP PURPLE', locale: _localeName, name: 'colorsDeepPurple', desc: r'Tab title for the color deep purple.'); } String get colorsGreen { - return Intl.message('GREEN', + return Intl.message(r'GREEN', locale: _localeName, name: 'colorsGreen', desc: r'Tab title for the color green.'); } String get colorsGrey { - return Intl.message('GREY', + return Intl.message(r'GREY', locale: _localeName, name: 'colorsGrey', desc: r'Tab title for the color grey.'); } String get colorsIndigo { - return Intl.message('INDIGO', + return Intl.message(r'INDIGO', locale: _localeName, name: 'colorsIndigo', desc: r'Tab title for the color indigo.'); } String get colorsLightBlue { - return Intl.message('LIGHT BLUE', + return Intl.message(r'LIGHT BLUE', locale: _localeName, name: 'colorsLightBlue', desc: r'Tab title for the color light blue.'); } String get colorsLightGreen { - return Intl.message('LIGHT GREEN', + return Intl.message(r'LIGHT GREEN', locale: _localeName, name: 'colorsLightGreen', desc: r'Tab title for the color light green.'); } String get colorsLime { - return Intl.message('LIME', + return Intl.message(r'LIME', locale: _localeName, name: 'colorsLime', desc: r'Tab title for the color lime.'); } String get colorsOrange { - return Intl.message('ORANGE', + return Intl.message(r'ORANGE', locale: _localeName, name: 'colorsOrange', desc: r'Tab title for the color orange.'); } String get colorsPink { - return Intl.message('PINK', + return Intl.message(r'PINK', locale: _localeName, name: 'colorsPink', desc: r'Tab title for the color pink.'); } String get colorsPurple { - return Intl.message('PURPLE', + return Intl.message(r'PURPLE', locale: _localeName, name: 'colorsPurple', desc: r'Tab title for the color purple.'); } String get colorsRed { - return Intl.message('RED', + return Intl.message(r'RED', locale: _localeName, name: 'colorsRed', desc: r'Tab title for the color red.'); } String get colorsTeal { - return Intl.message('TEAL', + return Intl.message(r'TEAL', locale: _localeName, name: 'colorsTeal', desc: r'Tab title for the color teal.'); } String get colorsYellow { - return Intl.message('YELLOW', + return Intl.message(r'YELLOW', locale: _localeName, name: 'colorsYellow', desc: r'Tab title for the color yellow.'); } String get craneDescription { - return Intl.message('A personalized travel app', + return Intl.message(r'A personalized travel app', locale: _localeName, name: 'craneDescription', desc: r'Study description for Crane.'); } String get craneEat { - return Intl.message('EAT', + return Intl.message(r'EAT', locale: _localeName, name: 'craneEat', desc: r'Title for EAT tab.'); } String get craneEat0 { - return Intl.message('Naples, Italy', + return Intl.message(r'Naples, Italy', locale: _localeName, name: 'craneEat0', desc: r'Label for city.'); } String get craneEat0SemanticLabel { - return Intl.message('Pizza in a wood-fired oven', + return Intl.message(r'Pizza in a wood-fired oven', locale: _localeName, name: 'craneEat0SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat1 { - return Intl.message('Dallas, United States', + return Intl.message(r'Dallas, United States', locale: _localeName, name: 'craneEat1', desc: r'Label for city.'); } String get craneEat10 { - return Intl.message('Lisbon, Portugal', + return Intl.message(r'Lisbon, Portugal', locale: _localeName, name: 'craneEat10', desc: r'Label for city.'); } String get craneEat10SemanticLabel { - return Intl.message('Woman holding huge pastrami sandwich', + return Intl.message(r'Woman holding huge pastrami sandwich', locale: _localeName, name: 'craneEat10SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat1SemanticLabel { - return Intl.message('Empty bar with diner-style stools', + return Intl.message(r'Empty bar with diner-style stools', locale: _localeName, name: 'craneEat1SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat2 { - return Intl.message('Córdoba, Argentina', + return Intl.message(r'Córdoba, Argentina', locale: _localeName, name: 'craneEat2', desc: r'Label for city.'); } String get craneEat2SemanticLabel { - return Intl.message('Burger', + return Intl.message(r'Burger', locale: _localeName, name: 'craneEat2SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat3 { - return Intl.message('Portland, United States', + return Intl.message(r'Portland, United States', locale: _localeName, name: 'craneEat3', desc: r'Label for city.'); } String get craneEat3SemanticLabel { - return Intl.message('Korean taco', + return Intl.message(r'Korean taco', locale: _localeName, name: 'craneEat3SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat4 { - return Intl.message('Paris, France', + return Intl.message(r'Paris, France', locale: _localeName, name: 'craneEat4', desc: r'Label for city.'); } String get craneEat4SemanticLabel { - return Intl.message('Chocolate dessert', + return Intl.message(r'Chocolate dessert', locale: _localeName, name: 'craneEat4SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat5 { - return Intl.message('Seoul, South Korea', + return Intl.message(r'Seoul, South Korea', locale: _localeName, name: 'craneEat5', desc: r'Label for city.'); } String get craneEat5SemanticLabel { - return Intl.message('Artsy restaurant seating area', + return Intl.message(r'Artsy restaurant seating area', locale: _localeName, name: 'craneEat5SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat6 { - return Intl.message('Seattle, United States', + return Intl.message(r'Seattle, United States', locale: _localeName, name: 'craneEat6', desc: r'Label for city.'); } String get craneEat6SemanticLabel { - return Intl.message('Shrimp dish', + return Intl.message(r'Shrimp dish', locale: _localeName, name: 'craneEat6SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat7 { - return Intl.message('Nashville, United States', + return Intl.message(r'Nashville, United States', locale: _localeName, name: 'craneEat7', desc: r'Label for city.'); } String get craneEat7SemanticLabel { - return Intl.message('Bakery entrance', + return Intl.message(r'Bakery entrance', locale: _localeName, name: 'craneEat7SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat8 { - return Intl.message('Atlanta, United States', + return Intl.message(r'Atlanta, United States', locale: _localeName, name: 'craneEat8', desc: r'Label for city.'); } String get craneEat8SemanticLabel { - return Intl.message('Plate of crawfish', + return Intl.message(r'Plate of crawfish', locale: _localeName, name: 'craneEat8SemanticLabel', desc: r'Semantic label for an image.'); } String get craneEat9 { - return Intl.message('Madrid, Spain', + return Intl.message(r'Madrid, Spain', locale: _localeName, name: 'craneEat9', desc: r'Label for city.'); } String get craneEat9SemanticLabel { - return Intl.message('Cafe counter with pastries', + return Intl.message(r'Cafe counter with pastries', locale: _localeName, name: 'craneEat9SemanticLabel', desc: r'Semantic label for an image.'); @@ -834,180 +834,180 @@ class GalleryLocalizations { } String get craneEatSubhead { - return Intl.message('Explore Restaurants by Destination', + return Intl.message(r'Explore Restaurants by Destination', locale: _localeName, name: 'craneEatSubhead', desc: r'Subhead for EAT tab.'); } String get craneFly { - return Intl.message('FLY', + return Intl.message(r'FLY', locale: _localeName, name: 'craneFly', desc: r'Title for FLY tab.'); } String get craneFly0 { - return Intl.message('Aspen, United States', + return Intl.message(r'Aspen, United States', locale: _localeName, name: 'craneFly0', desc: r'Label for city.'); } String get craneFly0SemanticLabel { - return Intl.message('Chalet in a snowy landscape with evergreen trees', + return Intl.message(r'Chalet in a snowy landscape with evergreen trees', locale: _localeName, name: 'craneFly0SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly1 { - return Intl.message('Big Sur, United States', + return Intl.message(r'Big Sur, United States', locale: _localeName, name: 'craneFly1', desc: r'Label for city.'); } String get craneFly10 { - return Intl.message('Cairo, Egypt', + return Intl.message(r'Cairo, Egypt', locale: _localeName, name: 'craneFly10', desc: r'Label for city.'); } String get craneFly10SemanticLabel { - return Intl.message('Al-Azhar Mosque towers during sunset', + return Intl.message(r'Al-Azhar Mosque towers during sunset', locale: _localeName, name: 'craneFly10SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly11 { - return Intl.message('Lisbon, Portugal', + return Intl.message(r'Lisbon, Portugal', locale: _localeName, name: 'craneFly11', desc: r'Label for city.'); } String get craneFly11SemanticLabel { - return Intl.message('Brick lighthouse at sea', + return Intl.message(r'Brick lighthouse at sea', locale: _localeName, name: 'craneFly11SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly12 { - return Intl.message('Napa, United States', + return Intl.message(r'Napa, United States', locale: _localeName, name: 'craneFly12', desc: r'Label for city.'); } String get craneFly12SemanticLabel { - return Intl.message('Pool with palm trees', + return Intl.message(r'Pool with palm trees', locale: _localeName, name: 'craneFly12SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly13 { - return Intl.message('Bali, Indonesia', + return Intl.message(r'Bali, Indonesia', locale: _localeName, name: 'craneFly13', desc: r'Label for city.'); } String get craneFly13SemanticLabel { - return Intl.message('Sea-side pool with palm trees', + return Intl.message(r'Sea-side pool with palm trees', locale: _localeName, name: 'craneFly13SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly1SemanticLabel { - return Intl.message('Tent in a field', + return Intl.message(r'Tent in a field', locale: _localeName, name: 'craneFly1SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly2 { - return Intl.message('Khumbu Valley, Nepal', + return Intl.message(r'Khumbu Valley, Nepal', locale: _localeName, name: 'craneFly2', desc: r'Label for city.'); } String get craneFly2SemanticLabel { - return Intl.message('Prayer flags in front of snowy mountain', + return Intl.message(r'Prayer flags in front of snowy mountain', locale: _localeName, name: 'craneFly2SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly3 { - return Intl.message('Machu Picchu, Peru', + return Intl.message(r'Machu Picchu, Peru', locale: _localeName, name: 'craneFly3', desc: r'Label for city.'); } String get craneFly3SemanticLabel { - return Intl.message('Machu Picchu citadel', + return Intl.message(r'Machu Picchu citadel', locale: _localeName, name: 'craneFly3SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly4 { - return Intl.message('Malé, Maldives', + return Intl.message(r'Malé, Maldives', locale: _localeName, name: 'craneFly4', desc: r'Label for city.'); } String get craneFly4SemanticLabel { - return Intl.message('Overwater bungalows', + return Intl.message(r'Overwater bungalows', locale: _localeName, name: 'craneFly4SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly5 { - return Intl.message('Vitznau, Switzerland', + return Intl.message(r'Vitznau, Switzerland', locale: _localeName, name: 'craneFly5', desc: r'Label for city.'); } String get craneFly5SemanticLabel { - return Intl.message('Lake-side hotel in front of mountains', + return Intl.message(r'Lake-side hotel in front of mountains', locale: _localeName, name: 'craneFly5SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly6 { - return Intl.message('Mexico City, Mexico', + return Intl.message(r'Mexico City, Mexico', locale: _localeName, name: 'craneFly6', desc: r'Label for city.'); } String get craneFly6SemanticLabel { - return Intl.message('Aerial view of Palacio de Bellas Artes', + return Intl.message(r'Aerial view of Palacio de Bellas Artes', locale: _localeName, name: 'craneFly6SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly7 { - return Intl.message('Mount Rushmore, United States', + return Intl.message(r'Mount Rushmore, United States', locale: _localeName, name: 'craneFly7', desc: r'Label for city.'); } String get craneFly7SemanticLabel { - return Intl.message('Mount Rushmore', + return Intl.message(r'Mount Rushmore', locale: _localeName, name: 'craneFly7SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly8 { - return Intl.message('Singapore', + return Intl.message(r'Singapore', locale: _localeName, name: 'craneFly8', desc: r'Label for city.'); } String get craneFly8SemanticLabel { - return Intl.message('Supertree Grove', + return Intl.message(r'Supertree Grove', locale: _localeName, name: 'craneFly8SemanticLabel', desc: r'Semantic label for an image.'); } String get craneFly9 { - return Intl.message('Havana, Cuba', + return Intl.message(r'Havana, Cuba', locale: _localeName, name: 'craneFly9', desc: r'Label for city.'); } String get craneFly9SemanticLabel { - return Intl.message('Man leaning on an antique blue car', + return Intl.message(r'Man leaning on an antique blue car', locale: _localeName, name: 'craneFly9SemanticLabel', desc: r'Semantic label for an image.'); @@ -1026,212 +1026,212 @@ class GalleryLocalizations { } String get craneFlySubhead { - return Intl.message('Explore Flights by Destination', + return Intl.message(r'Explore Flights by Destination', locale: _localeName, name: 'craneFlySubhead', desc: r'Subhead for FLY tab.'); } String get craneFormDate { - return Intl.message('Select Date', + return Intl.message(r'Select Date', locale: _localeName, name: 'craneFormDate', desc: r'Form field label to select a date.'); } String get craneFormDates { - return Intl.message('Select Dates', + return Intl.message(r'Select Dates', locale: _localeName, name: 'craneFormDates', desc: r'Form field label to select multiple dates.'); } String get craneFormDestination { - return Intl.message('Choose Destination', + return Intl.message(r'Choose Destination', locale: _localeName, name: 'craneFormDestination', desc: r'Form field label to choose a travel destination.'); } String get craneFormDiners { - return Intl.message('Diners', + return Intl.message(r'Diners', locale: _localeName, name: 'craneFormDiners', desc: r'Form field label to enter the number of diners.'); } String get craneFormLocation { - return Intl.message('Select Location', + return Intl.message(r'Select Location', locale: _localeName, name: 'craneFormLocation', desc: r'Form field label to select a location.'); } String get craneFormOrigin { - return Intl.message('Choose Origin', + return Intl.message(r'Choose Origin', locale: _localeName, name: 'craneFormOrigin', desc: r'Form field label to choose a travel origin.'); } String get craneFormTime { - return Intl.message('Select Time', + return Intl.message(r'Select Time', locale: _localeName, name: 'craneFormTime', desc: r'Form field label to select a time.'); } String get craneFormTravelers { - return Intl.message('Travelers', + return Intl.message(r'Travelers', locale: _localeName, name: 'craneFormTravelers', desc: r'Form field label to select the number of travellers.'); } String get craneSleep { - return Intl.message('SLEEP', + return Intl.message(r'SLEEP', locale: _localeName, name: 'craneSleep', desc: r'Title for SLEEP tab.'); } String get craneSleep0 { - return Intl.message('Malé, Maldives', + return Intl.message(r'Malé, Maldives', locale: _localeName, name: 'craneSleep0', desc: r'Label for city.'); } String get craneSleep0SemanticLabel { - return Intl.message('Overwater bungalows', + return Intl.message(r'Overwater bungalows', locale: _localeName, name: 'craneSleep0SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep1 { - return Intl.message('Aspen, United States', + return Intl.message(r'Aspen, United States', locale: _localeName, name: 'craneSleep1', desc: r'Label for city.'); } String get craneSleep10 { - return Intl.message('Cairo, Egypt', + return Intl.message(r'Cairo, Egypt', locale: _localeName, name: 'craneSleep10', desc: r'Label for city.'); } String get craneSleep10SemanticLabel { - return Intl.message('Al-Azhar Mosque towers during sunset', + return Intl.message(r'Al-Azhar Mosque towers during sunset', locale: _localeName, name: 'craneSleep10SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep11 { - return Intl.message('Taipei, Taiwan', + return Intl.message(r'Taipei, Taiwan', locale: _localeName, name: 'craneSleep11', desc: r'Label for city.'); } String get craneSleep11SemanticLabel { - return Intl.message('Taipei 101 skyscraper', + return Intl.message(r'Taipei 101 skyscraper', locale: _localeName, name: 'craneSleep11SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep1SemanticLabel { - return Intl.message('Chalet in a snowy landscape with evergreen trees', + return Intl.message(r'Chalet in a snowy landscape with evergreen trees', locale: _localeName, name: 'craneSleep1SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep2 { - return Intl.message('Machu Picchu, Peru', + return Intl.message(r'Machu Picchu, Peru', locale: _localeName, name: 'craneSleep2', desc: r'Label for city.'); } String get craneSleep2SemanticLabel { - return Intl.message('Machu Picchu citadel', + return Intl.message(r'Machu Picchu citadel', locale: _localeName, name: 'craneSleep2SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep3 { - return Intl.message('Havana, Cuba', + return Intl.message(r'Havana, Cuba', locale: _localeName, name: 'craneSleep3', desc: r'Label for city.'); } String get craneSleep3SemanticLabel { - return Intl.message('Man leaning on an antique blue car', + return Intl.message(r'Man leaning on an antique blue car', locale: _localeName, name: 'craneSleep3SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep4 { - return Intl.message('Vitznau, Switzerland', + return Intl.message(r'Vitznau, Switzerland', locale: _localeName, name: 'craneSleep4', desc: r'Label for city.'); } String get craneSleep4SemanticLabel { - return Intl.message('Lake-side hotel in front of mountains', + return Intl.message(r'Lake-side hotel in front of mountains', locale: _localeName, name: 'craneSleep4SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep5 { - return Intl.message('Big Sur, United States', + return Intl.message(r'Big Sur, United States', locale: _localeName, name: 'craneSleep5', desc: r'Label for city.'); } String get craneSleep5SemanticLabel { - return Intl.message('Tent in a field', + return Intl.message(r'Tent in a field', locale: _localeName, name: 'craneSleep5SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep6 { - return Intl.message('Napa, United States', + return Intl.message(r'Napa, United States', locale: _localeName, name: 'craneSleep6', desc: r'Label for city.'); } String get craneSleep6SemanticLabel { - return Intl.message('Pool with palm trees', + return Intl.message(r'Pool with palm trees', locale: _localeName, name: 'craneSleep6SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep7 { - return Intl.message('Porto, Portugal', + return Intl.message(r'Porto, Portugal', locale: _localeName, name: 'craneSleep7', desc: r'Label for city.'); } String get craneSleep7SemanticLabel { - return Intl.message('Colorful apartments at Riberia Square', + return Intl.message(r'Colorful apartments at Riberia Square', locale: _localeName, name: 'craneSleep7SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep8 { - return Intl.message('Tulum, Mexico', + return Intl.message(r'Tulum, Mexico', locale: _localeName, name: 'craneSleep8', desc: r'Label for city.'); } String get craneSleep8SemanticLabel { - return Intl.message('Mayan ruins on a cliff above a beach', + return Intl.message(r'Mayan ruins on a cliff above a beach', locale: _localeName, name: 'craneSleep8SemanticLabel', desc: r'Semantic label for an image.'); } String get craneSleep9 { - return Intl.message('Lisbon, Portugal', + return Intl.message(r'Lisbon, Portugal', locale: _localeName, name: 'craneSleep9', desc: r'Label for city.'); } String get craneSleep9SemanticLabel { - return Intl.message('Brick lighthouse at sea', + return Intl.message(r'Brick lighthouse at sea', locale: _localeName, name: 'craneSleep9SemanticLabel', desc: r'Semantic label for an image.'); @@ -1250,42 +1250,42 @@ class GalleryLocalizations { } String get craneSleepSubhead { - return Intl.message('Explore Properties by Destination', + return Intl.message(r'Explore Properties by Destination', locale: _localeName, name: 'craneSleepSubhead', desc: r'Subhead for SLEEP tab.'); } String get cupertinoAlertAllow { - return Intl.message('Allow', + return Intl.message(r'Allow', locale: _localeName, name: 'cupertinoAlertAllow', desc: r'iOS-style alert allow option.'); } String get cupertinoAlertApplePie { - return Intl.message('Apple Pie', + return Intl.message(r'Apple Pie', locale: _localeName, name: 'cupertinoAlertApplePie', desc: r'iOS-style alert apple pie option.'); } String get cupertinoAlertCancel { - return Intl.message('Cancel', + return Intl.message(r'Cancel', locale: _localeName, name: 'cupertinoAlertCancel', desc: r'iOS-style alert cancel option.'); } String get cupertinoAlertCheesecake { - return Intl.message('Cheesecake', + return Intl.message(r'Cheesecake', locale: _localeName, name: 'cupertinoAlertCheesecake', desc: r'iOS-style alert cheesecake option.'); } String get cupertinoAlertChocolateBrownie { - return Intl.message('Chocolate Brownie', + return Intl.message(r'Chocolate Brownie', locale: _localeName, name: 'cupertinoAlertChocolateBrownie', desc: r'iOS-style alert chocolate brownie option.'); @@ -1293,28 +1293,28 @@ class GalleryLocalizations { String get cupertinoAlertDessertDescription { return Intl.message( - 'Please select your favorite type of dessert from the list below. Your selection will be used to customize the suggested list of eateries in your area.', + r'Please select your favorite type of dessert from the list below. Your selection will be used to customize the suggested list of eateries in your area.', locale: _localeName, name: 'cupertinoAlertDessertDescription', desc: r'iOS-style alert description for selecting favorite dessert.'); } String get cupertinoAlertDiscard { - return Intl.message('Discard', + return Intl.message(r'Discard', locale: _localeName, name: 'cupertinoAlertDiscard', desc: r'iOS-style alert discard option.'); } String get cupertinoAlertDontAllow { - return Intl.message('Don' "'" r't Allow', + return Intl.message(r'Don' "'" r't Allow', locale: _localeName, name: 'cupertinoAlertDontAllow', desc: r'iOS-style alert don' "'" r't allow option.'); } String get cupertinoAlertFavoriteDessert { - return Intl.message('Select Favorite Dessert', + return Intl.message(r'Select Favorite Dessert', locale: _localeName, name: 'cupertinoAlertFavoriteDessert', desc: r'iOS-style alert title for selecting favorite dessert.'); @@ -1322,7 +1322,7 @@ class GalleryLocalizations { String get cupertinoAlertLocationDescription { return Intl.message( - 'Your current location will be displayed on the map and used for directions, nearby search results, and estimated travel times.', + r'Your current location will be displayed on the map and used for directions, nearby search results, and estimated travel times.', locale: _localeName, name: 'cupertinoAlertLocationDescription', desc: r'iOS-style alert description for location permission.'); @@ -1330,196 +1330,196 @@ class GalleryLocalizations { String get cupertinoAlertLocationTitle { return Intl.message( - 'Allow "Maps" to access your location while you are using the app?', + r'Allow "Maps" to access your location while you are using the app?', locale: _localeName, name: 'cupertinoAlertLocationTitle', desc: r'iOS-style alert title for location permission.'); } String get cupertinoAlertTiramisu { - return Intl.message('Tiramisu', + return Intl.message(r'Tiramisu', locale: _localeName, name: 'cupertinoAlertTiramisu', desc: r'iOS-style alert tiramisu option.'); } String get cupertinoButton { - return Intl.message('Button', + return Intl.message(r'Button', locale: _localeName, name: 'cupertinoButton', desc: r'Button text for a generic iOS-style button.'); } String get cupertinoButtonWithBackground { - return Intl.message('With Background', + return Intl.message(r'With Background', locale: _localeName, name: 'cupertinoButtonWithBackground', desc: r'Button text for a iOS-style button with a filled background.'); } String get cupertinoShowAlert { - return Intl.message('Show Alert', + return Intl.message(r'Show Alert', locale: _localeName, name: 'cupertinoShowAlert', desc: r'Button text to show iOS-style alert.'); } String get cupertinoTabBarChatTab { - return Intl.message('Chat', + return Intl.message(r'Chat', locale: _localeName, name: 'cupertinoTabBarChatTab', desc: r'Title for the chat tab in the bottom tab bar demo.'); } String get cupertinoTabBarHomeTab { - return Intl.message('Home', + return Intl.message(r'Home', locale: _localeName, name: 'cupertinoTabBarHomeTab', desc: r'Title for the home tab in the bottom tab bar demo.'); } String get cupertinoTabBarProfileTab { - return Intl.message('Profile', + return Intl.message(r'Profile', locale: _localeName, name: 'cupertinoTabBarProfileTab', desc: r'Title for the profile tab in the bottom tab bar demo.'); } String get dataTableColumnCalcium { - return Intl.message('Calcium (%)', + return Intl.message(r'Calcium (%)', locale: _localeName, name: 'dataTableColumnCalcium', desc: r'Column header for daily percentage of calcium.'); } String get dataTableColumnCalories { - return Intl.message('Calories', + return Intl.message(r'Calories', locale: _localeName, name: 'dataTableColumnCalories', desc: r'Column header for number of calories.'); } String get dataTableColumnCarbs { - return Intl.message('Carbs (g)', + return Intl.message(r'Carbs (g)', locale: _localeName, name: 'dataTableColumnCarbs', desc: r'Column header for number of grams of carbs.'); } String get dataTableColumnDessert { - return Intl.message('Dessert (1 serving)', + return Intl.message(r'Dessert (1 serving)', locale: _localeName, name: 'dataTableColumnDessert', desc: r'Column header for desserts.'); } String get dataTableColumnFat { - return Intl.message('Fat (g)', + return Intl.message(r'Fat (g)', locale: _localeName, name: 'dataTableColumnFat', desc: r'Column header for number of grams of fat.'); } String get dataTableColumnIron { - return Intl.message('Iron (%)', + return Intl.message(r'Iron (%)', locale: _localeName, name: 'dataTableColumnIron', desc: r'Column header for daily percentage of iron.'); } String get dataTableColumnProtein { - return Intl.message('Protein (g)', + return Intl.message(r'Protein (g)', locale: _localeName, name: 'dataTableColumnProtein', desc: r'Column header for number of grams of protein.'); } String get dataTableColumnSodium { - return Intl.message('Sodium (mg)', + return Intl.message(r'Sodium (mg)', locale: _localeName, name: 'dataTableColumnSodium', desc: r'Column header for number of milligrams of sodium.'); } String get dataTableHeader { - return Intl.message('Nutrition', + return Intl.message(r'Nutrition', locale: _localeName, name: 'dataTableHeader', desc: r'Header for the data table component demo about nutrition.'); } String get dataTableRowApplePie { - return Intl.message('Apple pie', + return Intl.message(r'Apple pie', locale: _localeName, name: 'dataTableRowApplePie', desc: r'Column row for Apple pie.'); } String get dataTableRowCupcake { - return Intl.message('Cupcake', + return Intl.message(r'Cupcake', locale: _localeName, name: 'dataTableRowCupcake', desc: r'Column row for Cupcake.'); } String get dataTableRowDonut { - return Intl.message('Donut', + return Intl.message(r'Donut', locale: _localeName, name: 'dataTableRowDonut', desc: r'Column row for Donut.'); } String get dataTableRowEclair { - return Intl.message('Eclair', + return Intl.message(r'Eclair', locale: _localeName, name: 'dataTableRowEclair', desc: r'Column row for Eclair.'); } String get dataTableRowFrozenYogurt { - return Intl.message('Frozen yogurt', + return Intl.message(r'Frozen yogurt', locale: _localeName, name: 'dataTableRowFrozenYogurt', desc: r'Column row for frozen yogurt.'); } String get dataTableRowGingerbread { - return Intl.message('Gingerbread', + return Intl.message(r'Gingerbread', locale: _localeName, name: 'dataTableRowGingerbread', desc: r'Column row for Gingerbread.'); } String get dataTableRowHoneycomb { - return Intl.message('Honeycomb', + return Intl.message(r'Honeycomb', locale: _localeName, name: 'dataTableRowHoneycomb', desc: r'Column row for Honeycomb.'); } String get dataTableRowIceCreamSandwich { - return Intl.message('Ice cream sandwich', + return Intl.message(r'Ice cream sandwich', locale: _localeName, name: 'dataTableRowIceCreamSandwich', desc: r'Column row for Ice cream sandwich.'); } String get dataTableRowJellyBean { - return Intl.message('Jelly bean', + return Intl.message(r'Jelly bean', locale: _localeName, name: 'dataTableRowJellyBean', desc: r'Column row for Jelly bean.'); } String get dataTableRowLollipop { - return Intl.message('Lollipop', + return Intl.message(r'Lollipop', locale: _localeName, name: 'dataTableRowLollipop', desc: r'Column row for Lollipop.'); } String dataTableRowWithHoney(Object value) { - return Intl.message('$value with honey', + return Intl.message(r'$value with honey', locale: _localeName, name: 'dataTableRowWithHoney', desc: @@ -1528,7 +1528,7 @@ class GalleryLocalizations { } String dataTableRowWithSugar(Object value) { - return Intl.message('$value with sugar', + return Intl.message(r'$value with sugar', locale: _localeName, name: 'dataTableRowWithSugar', desc: @@ -1536,16 +1536,53 @@ class GalleryLocalizations { args: [value]); } + String get demo2dTransformationsDescription { + return Intl.message( + r'Tap to edit tiles, and use gestures to move around the scene. Drag to pan, pinch to zoom, rotate with two fingers. Press the reset button to return to the starting orientation.', + locale: _localeName, + name: 'demo2dTransformationsDescription', + desc: r'Description for the 2D transformations demo.'); + } + + String get demo2dTransformationsEditTooltip { + return Intl.message(r'Edit tile', + locale: _localeName, + name: 'demo2dTransformationsEditTooltip', + desc: r'Tooltip for a button to edit a tile.'); + } + + String get demo2dTransformationsResetTooltip { + return Intl.message(r'Reset transformations', + locale: _localeName, + name: 'demo2dTransformationsResetTooltip', + desc: + r'Tooltip for a button to reset the transformations (scale, translation) for the 2D transformations demo.'); + } + + String get demo2dTransformationsSubtitle { + return Intl.message(r'Pan, zoom, rotate', + locale: _localeName, + name: 'demo2dTransformationsSubtitle', + desc: r'Subtitle for the 2D transformations demo.'); + } + + String get demo2dTransformationsTitle { + return Intl.message(r'2D transformations', + locale: _localeName, + name: 'demo2dTransformationsTitle', + desc: r'Title for the 2D transformations demo.'); + } + String get demoActionChipDescription { return Intl.message( - 'Action chips are a set of options which trigger an action related to primary content. Action chips should appear dynamically and contextually in a UI.', + r'Action chips are a set of options which trigger an action related to primary content. Action chips should appear dynamically and contextually in a UI.', locale: _localeName, name: 'demoActionChipDescription', desc: r'Description for the action chip component demo.'); } String get demoActionChipTitle { - return Intl.message('Action Chip', + return Intl.message(r'Action Chip', locale: _localeName, name: 'demoActionChipTitle', desc: r'Title for the action chip component demo.'); @@ -1553,21 +1590,21 @@ class GalleryLocalizations { String get demoAlertDialogDescription { return Intl.message( - 'An alert dialog informs the user about situations that require acknowledgement. An alert dialog has an optional title and an optional list of actions.', + r'An alert dialog informs the user about situations that require acknowledgement. An alert dialog has an optional title and an optional list of actions.', locale: _localeName, name: 'demoAlertDialogDescription', desc: r'Description for the alert dialog component demo.'); } String get demoAlertDialogTitle { - return Intl.message('Alert', + return Intl.message(r'Alert', locale: _localeName, name: 'demoAlertDialogTitle', desc: r'Title for the alert dialog component demo.'); } String get demoAlertTitleDialogTitle { - return Intl.message('Alert With Title', + return Intl.message(r'Alert With Title', locale: _localeName, name: 'demoAlertTitleDialogTitle', desc: r'Title for the alert dialog with title component demo.'); @@ -1575,21 +1612,21 @@ class GalleryLocalizations { String get demoBannerDescription { return Intl.message( - 'A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed.', + r'A banner displays an important, succinct message, and provides actions for users to address (or dismiss the banner). A user action is required for it to be dismissed.', locale: _localeName, name: 'demoBannerDescription', desc: r'Description for the material banner component demo.'); } String get demoBannerSubtitle { - return Intl.message('Displaying a banner within a list', + return Intl.message(r'Displaying a banner within a list', locale: _localeName, name: 'demoBannerSubtitle', desc: r'Subtitle for the material banner component demo.'); } String get demoBannerTitle { - return Intl.message('Banner', + return Intl.message(r'Banner', locale: _localeName, name: 'demoBannerTitle', desc: r'Title for the material banner component demo.'); @@ -1597,21 +1634,21 @@ class GalleryLocalizations { String get demoBottomAppBarDescription { return Intl.message( - 'Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button.', + r'Bottom app bars provide access to a bottom navigation drawer and up to four actions, including the floating action button.', locale: _localeName, name: 'demoBottomAppBarDescription', desc: r'Description for the material bottom app bar component demo.'); } String get demoBottomAppBarSubtitle { - return Intl.message('Displays navigation and actions at the bottom', + return Intl.message(r'Displays navigation and actions at the bottom', locale: _localeName, name: 'demoBottomAppBarSubtitle', desc: r'Subtitle for the material bottom app bar component demo.'); } String get demoBottomAppBarTitle { - return Intl.message('Bottom app bar', + return Intl.message(r'Bottom app bar', locale: _localeName, name: 'demoBottomAppBarTitle', desc: r'Title for the material bottom app bar component demo.'); @@ -1619,7 +1656,7 @@ class GalleryLocalizations { String get demoBottomNavigationDescription { return Intl.message( - 'Bottom navigation bars display three to five destinations at the bottom of a screen. Each destination is represented by an icon and an optional text label. When a bottom navigation icon is tapped, the user is taken to the top-level navigation destination associated with that icon.', + r'Bottom navigation bars display three to five destinations at the bottom of a screen. Each destination is represented by an icon and an optional text label. When a bottom navigation icon is tapped, the user is taken to the top-level navigation destination associated with that icon.', locale: _localeName, name: 'demoBottomNavigationDescription', desc: @@ -1627,14 +1664,14 @@ class GalleryLocalizations { } String get demoBottomNavigationPersistentLabels { - return Intl.message('Persistent labels', + return Intl.message(r'Persistent labels', locale: _localeName, name: 'demoBottomNavigationPersistentLabels', desc: r'Option title for bottom navigation with persistent labels.'); } String get demoBottomNavigationSelectedLabel { - return Intl.message('Selected label', + return Intl.message(r'Selected label', locale: _localeName, name: 'demoBottomNavigationSelectedLabel', desc: @@ -1642,42 +1679,42 @@ class GalleryLocalizations { } String get demoBottomNavigationSubtitle { - return Intl.message('Bottom navigation with cross-fading views', + return Intl.message(r'Bottom navigation with cross-fading views', locale: _localeName, name: 'demoBottomNavigationSubtitle', desc: r'Subtitle for the material bottom navigation component demo.'); } String get demoBottomNavigationTitle { - return Intl.message('Bottom navigation', + return Intl.message(r'Bottom navigation', locale: _localeName, name: 'demoBottomNavigationTitle', desc: r'Title for the material bottom navigation component demo.'); } String get demoBottomSheetAddLabel { - return Intl.message('Add', + return Intl.message(r'Add', locale: _localeName, name: 'demoBottomSheetAddLabel', desc: r'Semantic label for add icon.'); } String get demoBottomSheetButtonText { - return Intl.message('SHOW BOTTOM SHEET', + return Intl.message(r'SHOW BOTTOM SHEET', locale: _localeName, name: 'demoBottomSheetButtonText', desc: r'Button text to show bottom sheet.'); } String get demoBottomSheetHeader { - return Intl.message('Header', + return Intl.message(r'Header', locale: _localeName, name: 'demoBottomSheetHeader', desc: r'Generic header placeholder.'); } String demoBottomSheetItem(Object value) { - return Intl.message('Item $value', + return Intl.message(r'Item $value', locale: _localeName, name: 'demoBottomSheetItem', desc: r'Generic item placeholder.', @@ -1686,14 +1723,14 @@ class GalleryLocalizations { String get demoBottomSheetModalDescription { return Intl.message( - 'A modal bottom sheet is an alternative to a menu or a dialog and prevents the user from interacting with the rest of the app.', + r'A modal bottom sheet is an alternative to a menu or a dialog and prevents the user from interacting with the rest of the app.', locale: _localeName, name: 'demoBottomSheetModalDescription', desc: r'Description for modal bottom sheet demo.'); } String get demoBottomSheetModalTitle { - return Intl.message('Modal bottom sheet', + return Intl.message(r'Modal bottom sheet', locale: _localeName, name: 'demoBottomSheetModalTitle', desc: r'Title for modal bottom sheet demo.'); @@ -1701,49 +1738,49 @@ class GalleryLocalizations { String get demoBottomSheetPersistentDescription { return Intl.message( - 'A persistent bottom sheet shows information that supplements the primary content of the app. A persistent bottom sheet remains visible even when the user interacts with other parts of the app.', + r'A persistent bottom sheet shows information that supplements the primary content of the app. A persistent bottom sheet remains visible even when the user interacts with other parts of the app.', locale: _localeName, name: 'demoBottomSheetPersistentDescription', desc: r'Description for persistent bottom sheet demo.'); } String get demoBottomSheetPersistentTitle { - return Intl.message('Persistent bottom sheet', + return Intl.message(r'Persistent bottom sheet', locale: _localeName, name: 'demoBottomSheetPersistentTitle', desc: r'Title for persistent bottom sheet demo.'); } String get demoBottomSheetSubtitle { - return Intl.message('Persistent and modal bottom sheets', + return Intl.message(r'Persistent and modal bottom sheets', locale: _localeName, name: 'demoBottomSheetSubtitle', desc: r'Description for bottom sheet demo.'); } String get demoBottomSheetTitle { - return Intl.message('Bottom sheet', + return Intl.message(r'Bottom sheet', locale: _localeName, name: 'demoBottomSheetTitle', desc: r'Title for bottom sheet demo.'); } String get demoBottomTextFieldsTitle { - return Intl.message('Text fields', + return Intl.message(r'Text fields', locale: _localeName, name: 'demoBottomTextFieldsTitle', desc: r'Title for text fields demo.'); } String get demoButtonSubtitle { - return Intl.message('Flat, raised, outline, and more', + return Intl.message(r'Flat, raised, outline, and more', locale: _localeName, name: 'demoButtonSubtitle', desc: r'Subtitle for the material buttons component demo.'); } String get demoButtonTitle { - return Intl.message('Buttons', + return Intl.message(r'Buttons', locale: _localeName, name: 'demoButtonTitle', desc: r'Title for the material buttons component demo.'); @@ -1751,28 +1788,28 @@ class GalleryLocalizations { String get demoCardDescription { return Intl.message( - 'A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc.', + r'A card is a sheet of Material used to represent some related information, for example an album, a geographical location, a meal, contact details, etc.', locale: _localeName, name: 'demoCardDescription', desc: r'Description for the material cards component demo.'); } String get demoCardSubtitle { - return Intl.message('Baseline cards with rounded corners', + return Intl.message(r'Baseline cards with rounded corners', locale: _localeName, name: 'demoCardSubtitle', desc: r'Subtitle for the material cards component demo.'); } String get demoCardTitle { - return Intl.message('Cards', + return Intl.message(r'Cards', locale: _localeName, name: 'demoCardTitle', desc: r'Title for the material cards component demo.'); } String get demoChecklistMenuTitle { - return Intl.message('Checklist menu', + return Intl.message(r'Checklist menu', locale: _localeName, name: 'demoChecklistMenuTitle', desc: r'Title for the checklist menu component demo.'); @@ -1780,14 +1817,14 @@ class GalleryLocalizations { String get demoChipSubtitle { return Intl.message( - 'Compact elements that represent an input, attribute, or action', + r'Compact elements that represent an input, attribute, or action', locale: _localeName, name: 'demoChipSubtitle', desc: r'Subtitle for the material chips component demo.'); } String get demoChipTitle { - return Intl.message('Chips', + return Intl.message(r'Chips', locale: _localeName, name: 'demoChipTitle', desc: r'Title for the material chips component demo.'); @@ -1795,14 +1832,14 @@ class GalleryLocalizations { String get demoChoiceChipDescription { return Intl.message( - 'Choice chips represent a single choice from a set. Choice chips contain related descriptive text or categories.', + r'Choice chips represent a single choice from a set. Choice chips contain related descriptive text or categories.', locale: _localeName, name: 'demoChoiceChipDescription', desc: r'Description for the choice chip component demo.'); } String get demoChoiceChipTitle { - return Intl.message('Choice Chip', + return Intl.message(r'Choice Chip', locale: _localeName, name: 'demoChoiceChipTitle', desc: r'Title for the choice chip component demo.'); @@ -1810,28 +1847,28 @@ class GalleryLocalizations { String get demoCircularProgressIndicatorDescription { return Intl.message( - 'A Material Design circular progress indicator, which spins to indicate that the application is busy.', + r'A Material Design circular progress indicator, which spins to indicate that the application is busy.', locale: _localeName, name: 'demoCircularProgressIndicatorDescription', desc: r'Description for circular progress indicator demo.'); } String get demoCircularProgressIndicatorTitle { - return Intl.message('Circular Progress Indicator', + return Intl.message(r'Circular Progress Indicator', locale: _localeName, name: 'demoCircularProgressIndicatorTitle', desc: r'Title for circular progress indicator demo.'); } String get demoCodeTooltip { - return Intl.message('Demo Code', + return Intl.message(r'Demo Code', locale: _localeName, name: 'demoCodeTooltip', desc: r'Tooltip for demo code button in a demo.'); } String get demoCodeViewerCopiedToClipboardMessage { - return Intl.message('Copied to clipboard.', + return Intl.message(r'Copied to clipboard.', locale: _localeName, name: 'demoCodeViewerCopiedToClipboardMessage', desc: @@ -1839,14 +1876,14 @@ class GalleryLocalizations { } String get demoCodeViewerCopyAll { - return Intl.message('COPY ALL', + return Intl.message(r'COPY ALL', locale: _localeName, name: 'demoCodeViewerCopyAll', desc: r'Caption for a button to copy all text.'); } String demoCodeViewerFailedToCopyToClipboardMessage(Object error) { - return Intl.message('Failed to copy to clipboard: $error', + return Intl.message(r'Failed to copy to clipboard: $error', locale: _localeName, name: 'demoCodeViewerFailedToCopyToClipboardMessage', desc: @@ -1856,7 +1893,7 @@ class GalleryLocalizations { String get demoColorsDescription { return Intl.message( - 'Color and color swatch constants which represent Material Design' + r'Color and color swatch constants which represent Material Design' "'" r's color palette.', locale: _localeName, @@ -1866,21 +1903,21 @@ class GalleryLocalizations { } String get demoColorsSubtitle { - return Intl.message('All of the predefined colors', + return Intl.message(r'All of the predefined colors', locale: _localeName, name: 'demoColorsSubtitle', desc: r'Subtitle for the colors demo.'); } String get demoColorsTitle { - return Intl.message('Colors', + return Intl.message(r'Colors', locale: _localeName, name: 'demoColorsTitle', desc: r'Title for the colors demo.'); } String get demoContextMenuTitle { - return Intl.message('Context menu', + return Intl.message(r'Context menu', locale: _localeName, name: 'demoContextMenuTitle', desc: r'Title for the context menu component demo.'); @@ -1888,21 +1925,22 @@ class GalleryLocalizations { String get demoCupertinoActionSheetDescription { return Intl.message( - 'An action sheet is a specific style of alert that presents the user with a set of two or more choices related to the current context. An action sheet can have a title, an additional message, and a list of actions.', + r'An action sheet is a specific style of alert that presents the user with a set of two or more choices related to the current context. An action sheet can have a title, an additional message, and a list of actions.', locale: _localeName, name: 'demoCupertinoActionSheetDescription', desc: r'Description for the cupertino action sheet component demo.'); } String get demoCupertinoActionSheetTitle { - return Intl.message('Action Sheet', + return Intl.message(r'Action Sheet', locale: _localeName, name: 'demoCupertinoActionSheetTitle', desc: r'Title for the cupertino action sheet component demo.'); } String get demoCupertinoActivityIndicatorDescription { - return Intl.message('An iOS-style activity indicator that spins clockwise.', + return Intl.message( + r'An iOS-style activity indicator that spins clockwise.', locale: _localeName, name: 'demoCupertinoActivityIndicatorDescription', desc: @@ -1910,28 +1948,28 @@ class GalleryLocalizations { } String get demoCupertinoActivityIndicatorSubtitle { - return Intl.message('iOS-style activity indicators', + return Intl.message(r'iOS-style activity indicators', locale: _localeName, name: 'demoCupertinoActivityIndicatorSubtitle', desc: r'Subtitle for the cupertino activity indicator component demo.'); } String get demoCupertinoActivityIndicatorTitle { - return Intl.message('Activity indicator', + return Intl.message(r'Activity indicator', locale: _localeName, name: 'demoCupertinoActivityIndicatorTitle', desc: r'Title for the cupertino activity indicator component demo.'); } String get demoCupertinoAlertButtonsOnlyTitle { - return Intl.message('Alert Buttons Only', + return Intl.message(r'Alert Buttons Only', locale: _localeName, name: 'demoCupertinoAlertButtonsOnlyTitle', desc: r'Title for the cupertino alert buttons only component demo.'); } String get demoCupertinoAlertButtonsTitle { - return Intl.message('Alert With Buttons', + return Intl.message(r'Alert With Buttons', locale: _localeName, name: 'demoCupertinoAlertButtonsTitle', desc: r'Title for the cupertino alert with buttons component demo.'); @@ -1939,35 +1977,35 @@ class GalleryLocalizations { String get demoCupertinoAlertDescription { return Intl.message( - 'An alert dialog informs the user about situations that require acknowledgement. An alert dialog has an optional title, optional content, and an optional list of actions. The title is displayed above the content and the actions are displayed below the content.', + r'An alert dialog informs the user about situations that require acknowledgement. An alert dialog has an optional title, optional content, and an optional list of actions. The title is displayed above the content and the actions are displayed below the content.', locale: _localeName, name: 'demoCupertinoAlertDescription', desc: r'Description for the cupertino alert component demo.'); } String get demoCupertinoAlertTitle { - return Intl.message('Alert', + return Intl.message(r'Alert', locale: _localeName, name: 'demoCupertinoAlertTitle', desc: r'Title for the cupertino alert component demo.'); } String get demoCupertinoAlertWithTitleTitle { - return Intl.message('Alert With Title', + return Intl.message(r'Alert With Title', locale: _localeName, name: 'demoCupertinoAlertWithTitleTitle', desc: r'Title for the cupertino alert with title component demo.'); } String get demoCupertinoAlertsSubtitle { - return Intl.message('iOS-style alert dialogs', + return Intl.message(r'iOS-style alert dialogs', locale: _localeName, name: 'demoCupertinoAlertsSubtitle', desc: r'Subtitle for the cupertino alerts component demo.'); } String get demoCupertinoAlertsTitle { - return Intl.message('Alerts', + return Intl.message(r'Alerts', locale: _localeName, name: 'demoCupertinoAlertsTitle', desc: r'Title for the cupertino alerts component demo.'); @@ -1975,21 +2013,21 @@ class GalleryLocalizations { String get demoCupertinoButtonsDescription { return Intl.message( - 'An iOS-style button. It takes in text and/or an icon that fades out and in on touch. May optionally have a background.', + r'An iOS-style button. It takes in text and/or an icon that fades out and in on touch. May optionally have a background.', locale: _localeName, name: 'demoCupertinoButtonsDescription', desc: r'Description for the cupertino buttons component demo.'); } String get demoCupertinoButtonsSubtitle { - return Intl.message('iOS-style buttons', + return Intl.message(r'iOS-style buttons', locale: _localeName, name: 'demoCupertinoButtonsSubtitle', desc: r'Subtitle for the cupertino buttons component demo.'); } String get demoCupertinoButtonsTitle { - return Intl.message('Buttons', + return Intl.message(r'Buttons', locale: _localeName, name: 'demoCupertinoButtonsTitle', desc: r'Title for the cupertino buttons component demo.'); @@ -1997,35 +2035,35 @@ class GalleryLocalizations { String get demoCupertinoNavigationBarDescription { return Intl.message( - 'An iOS-styled navigation bar. The navigation bar is a toolbar that minimally consists of a page title, in the middle of the toolbar.', + r'An iOS-styled navigation bar. The navigation bar is a toolbar that minimally consists of a page title, in the middle of the toolbar.', locale: _localeName, name: 'demoCupertinoNavigationBarDescription', desc: r'Description for the cupertino navigation bar component demo.'); } String get demoCupertinoNavigationBarSubtitle { - return Intl.message('iOS-style navigation bar', + return Intl.message(r'iOS-style navigation bar', locale: _localeName, name: 'demoCupertinoNavigationBarSubtitle', desc: r'Subtitle for the cupertino navigation bar component demo.'); } String get demoCupertinoNavigationBarTitle { - return Intl.message('Navigation bar', + return Intl.message(r'Navigation bar', locale: _localeName, name: 'demoCupertinoNavigationBarTitle', desc: r'Title for the cupertino navigation bar component demo.'); } String get demoCupertinoPickerDate { - return Intl.message('Date', + return Intl.message(r'Date', locale: _localeName, name: 'demoCupertinoPickerDate', desc: r'Label to open a date picker.'); } String get demoCupertinoPickerDateTime { - return Intl.message('Date and Time', + return Intl.message(r'Date and Time', locale: _localeName, name: 'demoCupertinoPickerDateTime', desc: r'Label to open a date and time picker.'); @@ -2033,35 +2071,35 @@ class GalleryLocalizations { String get demoCupertinoPickerDescription { return Intl.message( - 'An iOS-style picker widget that can be used to select dates, times, or both date and time.', + r'An iOS-style picker widget that can be used to select dates, times, or both date and time.', locale: _localeName, name: 'demoCupertinoPickerDescription', desc: r'Description for the cupertino pickers component demo.'); } String get demoCupertinoPickerSubtitle { - return Intl.message('iOS-style date and time pickers', + return Intl.message(r'iOS-style date and time pickers', locale: _localeName, name: 'demoCupertinoPickerSubtitle', desc: r'Subtitle for the cupertino pickers component demo.'); } String get demoCupertinoPickerTime { - return Intl.message('Time', + return Intl.message(r'Time', locale: _localeName, name: 'demoCupertinoPickerTime', desc: r'Label to open a time picker.'); } String get demoCupertinoPickerTimer { - return Intl.message('Timer', + return Intl.message(r'Timer', locale: _localeName, name: 'demoCupertinoPickerTimer', desc: r'Label to open a countdown timer picker.'); } String get demoCupertinoPickerTitle { - return Intl.message('Pickers', + return Intl.message(r'Pickers', locale: _localeName, name: 'demoCupertinoPickerTitle', desc: r'Title for the cupertino date and time pickers component demo.'); @@ -2069,21 +2107,21 @@ class GalleryLocalizations { String get demoCupertinoPullToRefreshDescription { return Intl.message( - 'A widget implementing the iOS-style pull to refresh content control.', + r'A widget implementing the iOS-style pull to refresh content control.', locale: _localeName, name: 'demoCupertinoPullToRefreshDescription', desc: r'Description for the cupertino pull-to-refresh component demo.'); } String get demoCupertinoPullToRefreshSubtitle { - return Intl.message('iOS-style pull to refresh control', + return Intl.message(r'iOS-style pull to refresh control', locale: _localeName, name: 'demoCupertinoPullToRefreshSubtitle', desc: r'Subtitle for the cupertino pull-to-refresh component demo.'); } String get demoCupertinoPullToRefreshTitle { - return Intl.message('Pull to refresh', + return Intl.message(r'Pull to refresh', locale: _localeName, name: 'demoCupertinoPullToRefreshTitle', desc: r'Title for the cupertino pull-to-refresh component demo.'); @@ -2091,7 +2129,7 @@ class GalleryLocalizations { String get demoCupertinoSegmentedControlDescription { return Intl.message( - 'Used to select between a number of mutually exclusive options. When one option in the segmented control is selected, the other options in the segmented control cease to be selected.', + r'Used to select between a number of mutually exclusive options. When one option in the segmented control is selected, the other options in the segmented control cease to be selected.', locale: _localeName, name: 'demoCupertinoSegmentedControlDescription', desc: @@ -2099,21 +2137,21 @@ class GalleryLocalizations { } String get demoCupertinoSegmentedControlSubtitle { - return Intl.message('iOS-style segmented control', + return Intl.message(r'iOS-style segmented control', locale: _localeName, name: 'demoCupertinoSegmentedControlSubtitle', desc: r'Subtitle for the cupertino segmented control component demo.'); } String get demoCupertinoSegmentedControlTitle { - return Intl.message('Segmented control', + return Intl.message(r'Segmented control', locale: _localeName, name: 'demoCupertinoSegmentedControlTitle', desc: r'Title for the cupertino segmented control component demo.'); } String demoCupertinoSliderContinuous(Object value) { - return Intl.message('Continuous: $value', + return Intl.message(r'Continuous: $value', locale: _localeName, name: 'demoCupertinoSliderContinuous', desc: @@ -2123,14 +2161,14 @@ class GalleryLocalizations { String get demoCupertinoSliderDescription { return Intl.message( - 'A slider can be used to select from either a continuous or a discrete set of values.', + r'A slider can be used to select from either a continuous or a discrete set of values.', locale: _localeName, name: 'demoCupertinoSliderDescription', desc: r'Description for the cupertino slider component demo.'); } String demoCupertinoSliderDiscrete(Object value) { - return Intl.message('Discrete: $value', + return Intl.message(r'Discrete: $value', locale: _localeName, name: 'demoCupertinoSliderDiscrete', desc: @@ -2139,14 +2177,14 @@ class GalleryLocalizations { } String get demoCupertinoSliderSubtitle { - return Intl.message('iOS-style slider', + return Intl.message(r'iOS-style slider', locale: _localeName, name: 'demoCupertinoSliderSubtitle', desc: r'Subtitle for the cupertino slider component demo.'); } String get demoCupertinoSliderTitle { - return Intl.message('Slider', + return Intl.message(r'Slider', locale: _localeName, name: 'demoCupertinoSliderTitle', desc: r'Title for the cupertino slider component demo.'); @@ -2154,14 +2192,14 @@ class GalleryLocalizations { String get demoCupertinoSwitchDescription { return Intl.message( - 'A switch is used to toggle the on/off state of a single setting.', + r'A switch is used to toggle the on/off state of a single setting.', locale: _localeName, name: 'demoCupertinoSwitchDescription', desc: r'Description for the cupertino switch component demo.'); } String get demoCupertinoSwitchSubtitle { - return Intl.message('iOS-style switch', + return Intl.message(r'iOS-style switch', locale: _localeName, name: 'demoCupertinoSwitchSubtitle', desc: r'Subtitle for the cupertino switch component demo.'); @@ -2169,21 +2207,21 @@ class GalleryLocalizations { String get demoCupertinoTabBarDescription { return Intl.message( - 'An iOS-style bottom navigation tab bar. Displays multiple tabs with one tab being active, the first tab by default.', + r'An iOS-style bottom navigation tab bar. Displays multiple tabs with one tab being active, the first tab by default.', locale: _localeName, name: 'demoCupertinoTabBarDescription', desc: r'Description for the cupertino bottom tab bar demo.'); } String get demoCupertinoTabBarSubtitle { - return Intl.message('iOS-style bottom tab bar', + return Intl.message(r'iOS-style bottom tab bar', locale: _localeName, name: 'demoCupertinoTabBarSubtitle', desc: r'Subtitle for the cupertino bottom tab bar demo.'); } String get demoCupertinoTabBarTitle { - return Intl.message('Tab bar', + return Intl.message(r'Tab bar', locale: _localeName, name: 'demoCupertinoTabBarTitle', desc: r'Title for the cupertino bottom tab bar demo.'); @@ -2191,14 +2229,14 @@ class GalleryLocalizations { String get demoCupertinoTextFieldDescription { return Intl.message( - 'A text field lets the user enter text, either with a hardware keyboard or with an onscreen keyboard.', + r'A text field lets the user enter text, either with a hardware keyboard or with an onscreen keyboard.', locale: _localeName, name: 'demoCupertinoTextFieldDescription', desc: r'Description for the cupertino text field demo.'); } String get demoCupertinoTextFieldPIN { - return Intl.message('PIN', + return Intl.message(r'PIN', locale: _localeName, name: 'demoCupertinoTextFieldPIN', desc: @@ -2206,14 +2244,14 @@ class GalleryLocalizations { } String get demoCupertinoTextFieldSubtitle { - return Intl.message('iOS-style text fields', + return Intl.message(r'iOS-style text fields', locale: _localeName, name: 'demoCupertinoTextFieldSubtitle', desc: r'Subtitle for the cupertino text field demo.'); } String get demoCupertinoTextFieldTitle { - return Intl.message('Text fields', + return Intl.message(r'Text fields', locale: _localeName, name: 'demoCupertinoTextFieldTitle', desc: r'Title for the cupertino text field demo.'); @@ -2221,14 +2259,14 @@ class GalleryLocalizations { String get demoCustomSlidersDescription { return Intl.message( - 'Sliders reflect a range of values along a bar, from which users may select a single value or range of values. The sliders can be themed and customized.', + r'Sliders reflect a range of values along a bar, from which users may select a single value or range of values. The sliders can be themed and customized.', locale: _localeName, name: 'demoCustomSlidersDescription', desc: r'Description for the custom sliders demo.'); } String get demoCustomSlidersTitle { - return Intl.message('Custom Sliders', + return Intl.message(r'Custom Sliders', locale: _localeName, name: 'demoCustomSlidersTitle', desc: r'Title for the custom sliders component demo.'); @@ -2236,21 +2274,21 @@ class GalleryLocalizations { String get demoDataTableDescription { return Intl.message( - 'Data tables display information in a grid-like format of rows and columns. They organize information in a way that’s easy to scan, so that users can look for patterns and insights.', + r'Data tables display information in a grid-like format of rows and columns. They organize information in a way that’s easy to scan, so that users can look for patterns and insights.', locale: _localeName, name: 'demoDataTableDescription', desc: r'Description for the material data table component demo.'); } String get demoDataTableSubtitle { - return Intl.message('Rows and columns of information', + return Intl.message(r'Rows and columns of information', locale: _localeName, name: 'demoDataTableSubtitle', desc: r'Subtitle for the material data table component demo.'); } String get demoDataTableTitle { - return Intl.message('Data Tables', + return Intl.message(r'Data Tables', locale: _localeName, name: 'demoDataTableTitle', desc: r'Title for the material data table component demo.'); @@ -2258,35 +2296,35 @@ class GalleryLocalizations { String get demoDatePickerDescription { return Intl.message( - 'Shows a dialog containing a Material Design date picker.', + r'Shows a dialog containing a Material Design date picker.', locale: _localeName, name: 'demoDatePickerDescription', desc: r'Description for date picker demo.'); } String get demoDatePickerTitle { - return Intl.message('Date Picker', + return Intl.message(r'Date Picker', locale: _localeName, name: 'demoDatePickerTitle', desc: r'Title for date picker demo.'); } String get demoDialogSubtitle { - return Intl.message('Simple, alert, and fullscreen', + return Intl.message(r'Simple, alert, and fullscreen', locale: _localeName, name: 'demoDialogSubtitle', desc: r'Subtitle for the material dialog component demo.'); } String get demoDialogTitle { - return Intl.message('Dialogs', + return Intl.message(r'Dialogs', locale: _localeName, name: 'demoDialogTitle', desc: r'Title for the material dialog component demo.'); } String get demoDocumentationTooltip { - return Intl.message('API Documentation', + return Intl.message(r'API Documentation', locale: _localeName, name: 'demoDocumentationTooltip', desc: r'Tooltip for API documentation button in a demo.'); @@ -2294,14 +2332,14 @@ class GalleryLocalizations { String get demoFilterChipDescription { return Intl.message( - 'Filter chips use tags or descriptive words as a way to filter content.', + r'Filter chips use tags or descriptive words as a way to filter content.', locale: _localeName, name: 'demoFilterChipDescription', desc: r'Description for the filter chip component demo.'); } String get demoFilterChipTitle { - return Intl.message('Filter Chip', + return Intl.message(r'Filter Chip', locale: _localeName, name: 'demoFilterChipTitle', desc: r'Title for the filter chip component demo.'); @@ -2309,14 +2347,14 @@ class GalleryLocalizations { String get demoFlatButtonDescription { return Intl.message( - 'A flat button displays an ink splash on press but does not lift. Use flat buttons on toolbars, in dialogs and inline with padding', + r'A flat button displays an ink splash on press but does not lift. Use flat buttons on toolbars, in dialogs and inline with padding', locale: _localeName, name: 'demoFlatButtonDescription', desc: r'Description for the flat button component demo.'); } String get demoFlatButtonTitle { - return Intl.message('Flat Button', + return Intl.message(r'Flat Button', locale: _localeName, name: 'demoFlatButtonTitle', desc: r'Title for the flat button component demo.'); @@ -2324,14 +2362,14 @@ class GalleryLocalizations { String get demoFloatingButtonDescription { return Intl.message( - 'A floating action button is a circular icon button that hovers over content to promote a primary action in the application.', + r'A floating action button is a circular icon button that hovers over content to promote a primary action in the application.', locale: _localeName, name: 'demoFloatingButtonDescription', desc: r'Description for the floating action button component demo.'); } String get demoFloatingButtonTitle { - return Intl.message('Floating Action Button', + return Intl.message(r'Floating Action Button', locale: _localeName, name: 'demoFloatingButtonTitle', desc: r'Title for the floating action button component demo.'); @@ -2339,21 +2377,21 @@ class GalleryLocalizations { String get demoFullscreenDialogDescription { return Intl.message( - 'The fullscreenDialog property specifies whether the incoming page is a fullscreen modal dialog', + r'The fullscreenDialog property specifies whether the incoming page is a fullscreen modal dialog', locale: _localeName, name: 'demoFullscreenDialogDescription', desc: r'Description for the fullscreen dialog component demo.'); } String get demoFullscreenDialogTitle { - return Intl.message('Fullscreen', + return Intl.message(r'Fullscreen', locale: _localeName, name: 'demoFullscreenDialogTitle', desc: r'Title for the fullscreen dialog component demo.'); } String get demoFullscreenTooltip { - return Intl.message('Full Screen', + return Intl.message(r'Full Screen', locale: _localeName, name: 'demoFullscreenTooltip', desc: r'Tooltip for Full Screen button in a demo.'); @@ -2361,14 +2399,14 @@ class GalleryLocalizations { String get demoGridListsDescription { return Intl.message( - 'Grid Lists are best suited for presenting homogeneous data, typically images. Each item in a grid list is called a tile.', + r'Grid Lists are best suited for presenting homogeneous data, typically images. Each item in a grid list is called a tile.', locale: _localeName, name: 'demoGridListsDescription', desc: r'Description for the grid lists component demo.'); } String get demoGridListsFooterTitle { - return Intl.message('With footer', + return Intl.message(r'With footer', locale: _localeName, name: 'demoGridListsFooterTitle', desc: @@ -2376,7 +2414,7 @@ class GalleryLocalizations { } String get demoGridListsHeaderTitle { - return Intl.message('With header', + return Intl.message(r'With header', locale: _localeName, name: 'demoGridListsHeaderTitle', desc: @@ -2384,28 +2422,28 @@ class GalleryLocalizations { } String get demoGridListsImageOnlyTitle { - return Intl.message('Image only', + return Intl.message(r'Image only', locale: _localeName, name: 'demoGridListsImageOnlyTitle', desc: r'Title for the grid lists image-only component demo.'); } String get demoGridListsSubtitle { - return Intl.message('Row and column layout', + return Intl.message(r'Row and column layout', locale: _localeName, name: 'demoGridListsSubtitle', desc: r'Subtitle for the grid lists component demo.'); } String get demoGridListsTitle { - return Intl.message('Grid Lists', + return Intl.message(r'Grid Lists', locale: _localeName, name: 'demoGridListsTitle', desc: r'Title for the grid lists component demo.'); } String get demoInfoTooltip { - return Intl.message('Info', + return Intl.message(r'Info', locale: _localeName, name: 'demoInfoTooltip', desc: r'Tooltip for info button in a demo.'); @@ -2413,21 +2451,21 @@ class GalleryLocalizations { String get demoInputChipDescription { return Intl.message( - 'Input chips represent a complex piece of information, such as an entity (person, place, or thing) or conversational text, in a compact form.', + r'Input chips represent a complex piece of information, such as an entity (person, place, or thing) or conversational text, in a compact form.', locale: _localeName, name: 'demoInputChipDescription', desc: r'Description for the input chip component demo.'); } String get demoInputChipTitle { - return Intl.message('Input Chip', + return Intl.message(r'Input Chip', locale: _localeName, name: 'demoInputChipTitle', desc: r'Title for the input chip component demo.'); } String get demoInvalidURL { - return Intl.message('Couldn' "'" r't display URL:', + return Intl.message(r'Couldn' "'" r't display URL:', locale: _localeName, name: 'demoInvalidURL', desc: r'Error message when opening the URL for a demo.'); @@ -2435,14 +2473,14 @@ class GalleryLocalizations { String get demoLinearProgressIndicatorDescription { return Intl.message( - 'A Material Design linear progress indicator, also known as a progress bar.', + r'A Material Design linear progress indicator, also known as a progress bar.', locale: _localeName, name: 'demoLinearProgressIndicatorDescription', desc: r'Description for linear progress indicator demo.'); } String get demoLinearProgressIndicatorTitle { - return Intl.message('Linear Progress Indicator', + return Intl.message(r'Linear Progress Indicator', locale: _localeName, name: 'demoLinearProgressIndicatorTitle', desc: r'Title for linear progress indicator demo.'); @@ -2450,7 +2488,7 @@ class GalleryLocalizations { String get demoListsDescription { return Intl.message( - 'A single fixed-height row that typically contains some text as well as a leading or trailing icon.', + r'A single fixed-height row that typically contains some text as well as a leading or trailing icon.', locale: _localeName, name: 'demoListsDescription', desc: @@ -2458,28 +2496,28 @@ class GalleryLocalizations { } String get demoListsSecondary { - return Intl.message('Secondary text', + return Intl.message(r'Secondary text', locale: _localeName, name: 'demoListsSecondary', desc: r'Text that appears in the second line of a list item.'); } String get demoListsSubtitle { - return Intl.message('Scrolling list layouts', + return Intl.message(r'Scrolling list layouts', locale: _localeName, name: 'demoListsSubtitle', desc: r'Subtitle for lists demo.'); } String get demoListsTitle { - return Intl.message('Lists', + return Intl.message(r'Lists', locale: _localeName, name: 'demoListsTitle', desc: r'Title for lists demo.'); } String get demoMenuADisabledMenuItem { - return Intl.message('Disabled menu item', + return Intl.message(r'Disabled menu item', locale: _localeName, name: 'demoMenuADisabledMenuItem', desc: @@ -2487,7 +2525,7 @@ class GalleryLocalizations { } String get demoMenuAnItemWithAChecklistMenu { - return Intl.message('An item with a checklist menu', + return Intl.message(r'An item with a checklist menu', locale: _localeName, name: 'demoMenuAnItemWithAChecklistMenu', desc: @@ -2495,7 +2533,7 @@ class GalleryLocalizations { } String get demoMenuAnItemWithAContextMenuButton { - return Intl.message('An item with a context menu', + return Intl.message(r'An item with a context menu', locale: _localeName, name: 'demoMenuAnItemWithAContextMenuButton', desc: @@ -2503,7 +2541,7 @@ class GalleryLocalizations { } String get demoMenuAnItemWithASectionedMenu { - return Intl.message('An item with a sectioned menu', + return Intl.message(r'An item with a sectioned menu', locale: _localeName, name: 'demoMenuAnItemWithASectionedMenu', desc: @@ -2511,7 +2549,7 @@ class GalleryLocalizations { } String get demoMenuAnItemWithASimpleMenu { - return Intl.message('An item with a simple menu', + return Intl.message(r'An item with a simple menu', locale: _localeName, name: 'demoMenuAnItemWithASimpleMenu', desc: @@ -2519,7 +2557,7 @@ class GalleryLocalizations { } String demoMenuChecked(Object value) { - return Intl.message('Checked: $value', + return Intl.message(r'Checked: $value', locale: _localeName, name: 'demoMenuChecked', desc: r'A text to show what value was checked.', @@ -2527,7 +2565,7 @@ class GalleryLocalizations { } String get demoMenuContextMenuItemOne { - return Intl.message('Context menu item one', + return Intl.message(r'Context menu item one', locale: _localeName, name: 'demoMenuContextMenuItemOne', desc: @@ -2535,7 +2573,7 @@ class GalleryLocalizations { } String get demoMenuContextMenuItemThree { - return Intl.message('Context menu item three', + return Intl.message(r'Context menu item three', locale: _localeName, name: 'demoMenuContextMenuItemThree', desc: @@ -2544,66 +2582,66 @@ class GalleryLocalizations { String get demoMenuDescription { return Intl.message( - 'A menu displays a list of choices on a temporary surface. They appear when users interact with a button, action, or other control.', + r'A menu displays a list of choices on a temporary surface. They appear when users interact with a button, action, or other control.', locale: _localeName, name: 'demoMenuDescription', desc: r'Description for the menu demo.'); } String get demoMenuFour { - return Intl.message('Four', + return Intl.message(r'Four', locale: _localeName, name: 'demoMenuFour', desc: r'The number four.'); } String get demoMenuGetLink { - return Intl.message('Get link', + return Intl.message(r'Get link', locale: _localeName, name: 'demoMenuGetLink', desc: r'Button to get link for content.'); } String get demoMenuItemValueOne { - return Intl.message('Menu item one', + return Intl.message(r'Menu item one', locale: _localeName, name: 'demoMenuItemValueOne', desc: r'The first item in a menu.'); } String get demoMenuItemValueThree { - return Intl.message('Menu item three', + return Intl.message(r'Menu item three', locale: _localeName, name: 'demoMenuItemValueThree', desc: r'The third item in a menu.'); } String get demoMenuItemValueTwo { - return Intl.message('Menu item two', + return Intl.message(r'Menu item two', locale: _localeName, name: 'demoMenuItemValueTwo', desc: r'The second item in a menu.'); } String get demoMenuOne { - return Intl.message('One', + return Intl.message(r'One', locale: _localeName, name: 'demoMenuOne', desc: r'The number one.'); } String get demoMenuPreview { - return Intl.message('Preview', + return Intl.message(r'Preview', locale: _localeName, name: 'demoMenuPreview', desc: r'Button to preview content.'); } String get demoMenuRemove { - return Intl.message('Remove', + return Intl.message(r'Remove', locale: _localeName, name: 'demoMenuRemove', desc: r'Button to remove content.'); } String demoMenuSelected(Object value) { - return Intl.message('Selected: $value', + return Intl.message(r'Selected: $value', locale: _localeName, name: 'demoMenuSelected', desc: r'A text to show what value was selected.', @@ -2611,45 +2649,45 @@ class GalleryLocalizations { } String get demoMenuShare { - return Intl.message('Share', + return Intl.message(r'Share', locale: _localeName, name: 'demoMenuShare', desc: r'Button to share content.'); } String get demoMenuSubtitle { - return Intl.message('Menu buttons and simple menus', + return Intl.message(r'Menu buttons and simple menus', locale: _localeName, name: 'demoMenuSubtitle', desc: r'Short description for the menu component demo.'); } String get demoMenuThree { - return Intl.message('Three', + return Intl.message(r'Three', locale: _localeName, name: 'demoMenuThree', desc: r'The number three.'); } String get demoMenuTitle { - return Intl.message('Menu', + return Intl.message(r'Menu', locale: _localeName, name: 'demoMenuTitle', desc: r'Title for the menu component demo.'); } String get demoMenuTwo { - return Intl.message('Two', + return Intl.message(r'Two', locale: _localeName, name: 'demoMenuTwo', desc: r'The number two.'); } String get demoOneLineListsTitle { - return Intl.message('One Line', + return Intl.message(r'One Line', locale: _localeName, name: 'demoOneLineListsTitle', desc: r'Title for lists demo with only one line of text per row.'); } String get demoOptionsFeatureDescription { - return Intl.message('Tap here to view available options for this demo.', + return Intl.message(r'Tap here to view available options for this demo.', locale: _localeName, name: 'demoOptionsFeatureDescription', desc: @@ -2657,7 +2695,7 @@ class GalleryLocalizations { } String get demoOptionsFeatureTitle { - return Intl.message('View options', + return Intl.message(r'View options', locale: _localeName, name: 'demoOptionsFeatureTitle', desc: @@ -2665,7 +2703,7 @@ class GalleryLocalizations { } String get demoOptionsTooltip { - return Intl.message('Options', + return Intl.message(r'Options', locale: _localeName, name: 'demoOptionsTooltip', desc: r'Tooltip for options button in a demo.'); @@ -2673,49 +2711,49 @@ class GalleryLocalizations { String get demoOutlineButtonDescription { return Intl.message( - 'Outline buttons become opaque and elevate when pressed. They are often paired with raised buttons to indicate an alternative, secondary action.', + r'Outline buttons become opaque and elevate when pressed. They are often paired with raised buttons to indicate an alternative, secondary action.', locale: _localeName, name: 'demoOutlineButtonDescription', desc: r'Description for the outline button component demo.'); } String get demoOutlineButtonTitle { - return Intl.message('Outline Button', + return Intl.message(r'Outline Button', locale: _localeName, name: 'demoOutlineButtonTitle', desc: r'Title for the outline button component demo.'); } String get demoPickersShowPicker { - return Intl.message('SHOW PICKER', + return Intl.message(r'SHOW PICKER', locale: _localeName, name: 'demoPickersShowPicker', desc: r'Button text to show the date or time picker in the demo.'); } String get demoPickersSubtitle { - return Intl.message('Date and time selection', + return Intl.message(r'Date and time selection', locale: _localeName, name: 'demoPickersSubtitle', desc: r'Subtitle for pickers demo.'); } String get demoPickersTitle { - return Intl.message('Pickers', + return Intl.message(r'Pickers', locale: _localeName, name: 'demoPickersTitle', desc: r'Title for pickers demo.'); } String get demoProgressIndicatorSubtitle { - return Intl.message('Linear, circular, indeterminate', + return Intl.message(r'Linear, circular, indeterminate', locale: _localeName, name: 'demoProgressIndicatorSubtitle', desc: r'Subtitle for progress indicators demo.'); } String get demoProgressIndicatorTitle { - return Intl.message('Progress indicators', + return Intl.message(r'Progress indicators', locale: _localeName, name: 'demoProgressIndicatorTitle', desc: r'Title for progress indicators demo.'); @@ -2723,14 +2761,14 @@ class GalleryLocalizations { String get demoRaisedButtonDescription { return Intl.message( - 'Raised buttons add dimension to mostly flat layouts. They emphasize functions on busy or wide spaces.', + r'Raised buttons add dimension to mostly flat layouts. They emphasize functions on busy or wide spaces.', locale: _localeName, name: 'demoRaisedButtonDescription', desc: r'Description for the raised button component demo.'); } String get demoRaisedButtonTitle { - return Intl.message('Raised Button', + return Intl.message(r'Raised Button', locale: _localeName, name: 'demoRaisedButtonTitle', desc: r'Title for the raised button component demo.'); @@ -2738,21 +2776,21 @@ class GalleryLocalizations { String get demoRangeSlidersDescription { return Intl.message( - 'Sliders reflect a range of values along a bar. They can have icons on both ends of the bar that reflect a range of values. They are ideal for adjusting settings such as volume, brightness, or applying image filters.', + r'Sliders reflect a range of values along a bar. They can have icons on both ends of the bar that reflect a range of values. They are ideal for adjusting settings such as volume, brightness, or applying image filters.', locale: _localeName, name: 'demoRangeSlidersDescription', desc: r'Description for the range sliders demo.'); } String get demoRangeSlidersTitle { - return Intl.message('Range Sliders', + return Intl.message(r'Range Sliders', locale: _localeName, name: 'demoRangeSlidersTitle', desc: r'Title for the range sliders component demo.'); } String get demoSectionedMenuTitle { - return Intl.message('Sectioned menu', + return Intl.message(r'Sectioned menu', locale: _localeName, name: 'demoSectionedMenuTitle', desc: r'Title for the sectioned menu component demo.'); @@ -2760,7 +2798,7 @@ class GalleryLocalizations { String get demoSelectionControlsCheckboxDescription { return Intl.message( - 'Checkboxes allow the user to select multiple options from a set. A normal checkbox' + r'Checkboxes allow the user to select multiple options from a set. A normal checkbox' "'" r's value is true or false and a tristate checkbox' "'" @@ -2771,7 +2809,7 @@ class GalleryLocalizations { } String get demoSelectionControlsCheckboxTitle { - return Intl.message('Checkbox', + return Intl.message(r'Checkbox', locale: _localeName, name: 'demoSelectionControlsCheckboxTitle', desc: r'Title for the checkbox (selection controls) demo.'); @@ -2779,21 +2817,21 @@ class GalleryLocalizations { String get demoSelectionControlsRadioDescription { return Intl.message( - 'Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.', + r'Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.', locale: _localeName, name: 'demoSelectionControlsRadioDescription', desc: r'Description for the radio button (selection controls) demo.'); } String get demoSelectionControlsRadioTitle { - return Intl.message('Radio', + return Intl.message(r'Radio', locale: _localeName, name: 'demoSelectionControlsRadioTitle', desc: r'Title for the radio button (selection controls) demo.'); } String get demoSelectionControlsSubtitle { - return Intl.message('Checkboxes, radio buttons, and switches', + return Intl.message(r'Checkboxes, radio buttons, and switches', locale: _localeName, name: 'demoSelectionControlsSubtitle', desc: r'Subtitle for selection controls demo.'); @@ -2801,21 +2839,21 @@ class GalleryLocalizations { String get demoSelectionControlsSwitchDescription { return Intl.message( - 'On/off switches toggle the state of a single settings option. The option that the switch controls, as well as the state it’s in, should be made clear from the corresponding inline label.', + r'On/off switches toggle the state of a single settings option. The option that the switch controls, as well as the state it’s in, should be made clear from the corresponding inline label.', locale: _localeName, name: 'demoSelectionControlsSwitchDescription', desc: r'Description for the switches (selection controls) demo.'); } String get demoSelectionControlsSwitchTitle { - return Intl.message('Switch', + return Intl.message(r'Switch', locale: _localeName, name: 'demoSelectionControlsSwitchTitle', desc: r'Title for the switches (selection controls) demo.'); } String get demoSelectionControlsTitle { - return Intl.message('Selection controls', + return Intl.message(r'Selection controls', locale: _localeName, name: 'demoSelectionControlsTitle', desc: r'Title for selection controls demo.'); @@ -2823,28 +2861,28 @@ class GalleryLocalizations { String get demoSimpleDialogDescription { return Intl.message( - 'A simple dialog offers the user a choice between several options. A simple dialog has an optional title that is displayed above the choices.', + r'A simple dialog offers the user a choice between several options. A simple dialog has an optional title that is displayed above the choices.', locale: _localeName, name: 'demoSimpleDialogDescription', desc: r'Description for the simple dialog component demo.'); } String get demoSimpleDialogTitle { - return Intl.message('Simple', + return Intl.message(r'Simple', locale: _localeName, name: 'demoSimpleDialogTitle', desc: r'Title for the simple dialog component demo.'); } String get demoSimpleMenuTitle { - return Intl.message('Simple menu', + return Intl.message(r'Simple menu', locale: _localeName, name: 'demoSimpleMenuTitle', desc: r'Title for the simple menu component demo.'); } String get demoSlidersContinuous { - return Intl.message('Continuous', + return Intl.message(r'Continuous', locale: _localeName, name: 'demoSlidersContinuous', desc: @@ -2852,7 +2890,7 @@ class GalleryLocalizations { } String get demoSlidersContinuousRangeSliderWithCustomTheme { - return Intl.message('Continuous Range Slider with Custom Theme', + return Intl.message(r'Continuous Range Slider with Custom Theme', locale: _localeName, name: 'demoSlidersContinuousRangeSliderWithCustomTheme', desc: @@ -2860,7 +2898,7 @@ class GalleryLocalizations { } String get demoSlidersContinuousWithEditableNumericalValue { - return Intl.message('Continuous with Editable Numerical Value', + return Intl.message(r'Continuous with Editable Numerical Value', locale: _localeName, name: 'demoSlidersContinuousWithEditableNumericalValue', desc: @@ -2869,21 +2907,21 @@ class GalleryLocalizations { String get demoSlidersDescription { return Intl.message( - 'Sliders reflect a range of values along a bar, from which users may select a single value. They are ideal for adjusting settings such as volume, brightness, or applying image filters.', + r'Sliders reflect a range of values along a bar, from which users may select a single value. They are ideal for adjusting settings such as volume, brightness, or applying image filters.', locale: _localeName, name: 'demoSlidersDescription', desc: r'Description for the sliders demo.'); } String get demoSlidersDiscrete { - return Intl.message('Discrete', + return Intl.message(r'Discrete', locale: _localeName, name: 'demoSlidersDiscrete', desc: r'Text to describe that we have a slider with discrete values.'); } String get demoSlidersDiscreteSliderWithCustomTheme { - return Intl.message('Discrete Slider with Custom Theme', + return Intl.message(r'Discrete Slider with Custom Theme', locale: _localeName, name: 'demoSlidersDiscreteSliderWithCustomTheme', desc: @@ -2891,42 +2929,42 @@ class GalleryLocalizations { } String get demoSlidersEditableNumericalValue { - return Intl.message('Editable numerical value', + return Intl.message(r'Editable numerical value', locale: _localeName, name: 'demoSlidersEditableNumericalValue', desc: r'Label for input field that has an editable numerical value.'); } String get demoSlidersSubtitle { - return Intl.message('Widgets for selecting a value by swiping', + return Intl.message(r'Widgets for selecting a value by swiping', locale: _localeName, name: 'demoSlidersSubtitle', desc: r'Short description for the sliders component demo.'); } String get demoSlidersTitle { - return Intl.message('Sliders', + return Intl.message(r'Sliders', locale: _localeName, name: 'demoSlidersTitle', desc: r'Title for the sliders component demo.'); } String get demoSnackbarsAction { - return Intl.message('You pressed the snackbar action.', + return Intl.message(r'You pressed the snackbar action.', locale: _localeName, name: 'demoSnackbarsAction', desc: r'Text that appears when you press on a snackbars’ action.'); } String get demoSnackbarsActionButtonLabel { - return Intl.message('ACTION', + return Intl.message(r'ACTION', locale: _localeName, name: 'demoSnackbarsActionButtonLabel', desc: r'Label for action button text on the snackbar.'); } String get demoSnackbarsButtonLabel { - return Intl.message('SHOW A SNACKBAR', + return Intl.message(r'SHOW A SNACKBAR', locale: _localeName, name: 'demoSnackbarsButtonLabel', desc: r'Label for button to show a snackbar.'); @@ -2934,28 +2972,28 @@ class GalleryLocalizations { String get demoSnackbarsDescription { return Intl.message( - 'Snackbars inform users of a process that an app has performed or will perform. They appear temporarily, towards the bottom of the screen. They shouldn’t interrupt the user experience, and they don’t require user input to disappear.', + r'Snackbars inform users of a process that an app has performed or will perform. They appear temporarily, towards the bottom of the screen. They shouldn’t interrupt the user experience, and they don’t require user input to disappear.', locale: _localeName, name: 'demoSnackbarsDescription', desc: r'Description for snackbars demo.'); } String get demoSnackbarsSubtitle { - return Intl.message('Snackbars show messages at the bottom of the screen', + return Intl.message(r'Snackbars show messages at the bottom of the screen', locale: _localeName, name: 'demoSnackbarsSubtitle', desc: r'Subtitle for snackbars demo.'); } String get demoSnackbarsText { - return Intl.message('This is a snackbar.', + return Intl.message(r'This is a snackbar.', locale: _localeName, name: 'demoSnackbarsText', desc: r'Text to show on a snackbar.'); } String get demoSnackbarsTitle { - return Intl.message('Snackbars', + return Intl.message(r'Snackbars', locale: _localeName, name: 'demoSnackbarsTitle', desc: r'Title for snackbars demo.'); @@ -2963,21 +3001,21 @@ class GalleryLocalizations { String get demoTabsDescription { return Intl.message( - 'Tabs organize content across different screens, data sets, and other interactions.', + r'Tabs organize content across different screens, data sets, and other interactions.', locale: _localeName, name: 'demoTabsDescription', desc: r'Description for tabs demo.'); } String get demoTabsSubtitle { - return Intl.message('Tabs with independently scrollable views', + return Intl.message(r'Tabs with independently scrollable views', locale: _localeName, name: 'demoTabsSubtitle', desc: r'Subtitle for tabs demo.'); } String get demoTabsTitle { - return Intl.message('Tabs', + return Intl.message(r'Tabs', locale: _localeName, name: 'demoTabsTitle', desc: r'Title for tabs demo.'); @@ -2985,28 +3023,28 @@ class GalleryLocalizations { String get demoTextFieldDescription { return Intl.message( - 'Text fields allow users to enter text into a UI. They typically appear in forms and dialogs.', + r'Text fields allow users to enter text into a UI. They typically appear in forms and dialogs.', locale: _localeName, name: 'demoTextFieldDescription', desc: r'Description for text fields demo.'); } String get demoTextFieldEmail { - return Intl.message('Email', + return Intl.message(r'Email', locale: _localeName, name: 'demoTextFieldEmail', desc: r'The label for an email address input field'); } String get demoTextFieldEnterPassword { - return Intl.message('Please enter a password.', + return Intl.message(r'Please enter a password.', locale: _localeName, name: 'demoTextFieldEnterPassword', desc: r'Error that shows up if password is not given.'); } String get demoTextFieldEnterUSPhoneNumber { - return Intl.message('(###) ###-#### - Enter a US phone number.', + return Intl.message(r'(###) ###-#### - Enter a US phone number.', locale: _localeName, name: 'demoTextFieldEnterUSPhoneNumber', desc: @@ -3014,35 +3052,35 @@ class GalleryLocalizations { } String get demoTextFieldFormErrors { - return Intl.message('Please fix the errors in red before submitting.', + return Intl.message(r'Please fix the errors in red before submitting.', locale: _localeName, name: 'demoTextFieldFormErrors', desc: r'Text that shows up on form errors.'); } String get demoTextFieldHidePasswordLabel { - return Intl.message('Hide password', + return Intl.message(r'Hide password', locale: _localeName, name: 'demoTextFieldHidePasswordLabel', desc: r'Label for hide password icon.'); } String get demoTextFieldKeepItShort { - return Intl.message('Keep it short, this is just a demo.', + return Intl.message(r'Keep it short, this is just a demo.', locale: _localeName, name: 'demoTextFieldKeepItShort', desc: r'Helper text for biography/life story input field.'); } String get demoTextFieldLifeStory { - return Intl.message('Life story', + return Intl.message(r'Life story', locale: _localeName, name: 'demoTextFieldLifeStory', desc: r'The label for for biography/life story input field.'); } String get demoTextFieldNameField { - return Intl.message('Name*', + return Intl.message(r'Name*', locale: _localeName, name: 'demoTextFieldNameField', desc: @@ -3050,7 +3088,7 @@ class GalleryLocalizations { } String demoTextFieldNameHasPhoneNumber(Object name, Object phoneNumber) { - return Intl.message('$name phone number is $phoneNumber', + return Intl.message(r'$name phone number is $phoneNumber', locale: _localeName, name: 'demoTextFieldNameHasPhoneNumber', desc: @@ -3059,7 +3097,7 @@ class GalleryLocalizations { } String get demoTextFieldNameRequired { - return Intl.message('Name is required.', + return Intl.message(r'Name is required.', locale: _localeName, name: 'demoTextFieldNameRequired', desc: @@ -3067,21 +3105,21 @@ class GalleryLocalizations { } String get demoTextFieldNoMoreThan { - return Intl.message('No more than 8 characters.', + return Intl.message(r'No more than 8 characters.', locale: _localeName, name: 'demoTextFieldNoMoreThan', desc: r'Helper text for password input field.'); } String get demoTextFieldOnlyAlphabeticalChars { - return Intl.message('Please enter only alphabetical characters.', + return Intl.message(r'Please enter only alphabetical characters.', locale: _localeName, name: 'demoTextFieldOnlyAlphabeticalChars', desc: r'Error that shows if non-alphabetical characters are given.'); } String get demoTextFieldPassword { - return Intl.message('Password*', + return Intl.message(r'Password*', locale: _localeName, name: 'demoTextFieldPassword', desc: @@ -3089,7 +3127,7 @@ class GalleryLocalizations { } String get demoTextFieldPasswordsDoNotMatch { - return Intl.message('The passwords don' "'" r't match', + return Intl.message(r'The passwords don' "'" r't match', locale: _localeName, name: 'demoTextFieldPasswordsDoNotMatch', desc: @@ -3097,7 +3135,7 @@ class GalleryLocalizations { } String get demoTextFieldPhoneNumber { - return Intl.message('Phone number*', + return Intl.message(r'Phone number*', locale: _localeName, name: 'demoTextFieldPhoneNumber', desc: @@ -3105,7 +3143,7 @@ class GalleryLocalizations { } String get demoTextFieldRequiredField { - return Intl.message('* indicates required field', + return Intl.message(r'* indicates required field', locale: _localeName, name: 'demoTextFieldRequiredField', desc: @@ -3113,35 +3151,35 @@ class GalleryLocalizations { } String get demoTextFieldRetypePassword { - return Intl.message('Re-type password*', + return Intl.message(r'Re-type password*', locale: _localeName, name: 'demoTextFieldRetypePassword', desc: r'Label for repeat password input field.'); } String get demoTextFieldSalary { - return Intl.message('Salary', + return Intl.message(r'Salary', locale: _localeName, name: 'demoTextFieldSalary', desc: r'The label for salary input field.'); } String get demoTextFieldShowPasswordLabel { - return Intl.message('Show password', + return Intl.message(r'Show password', locale: _localeName, name: 'demoTextFieldShowPasswordLabel', desc: r'Label for show password icon.'); } String get demoTextFieldSubmit { - return Intl.message('SUBMIT', + return Intl.message(r'SUBMIT', locale: _localeName, name: 'demoTextFieldSubmit', desc: r'The submit button text for form.'); } String get demoTextFieldSubtitle { - return Intl.message('Single line of editable text and numbers', + return Intl.message(r'Single line of editable text and numbers', locale: _localeName, name: 'demoTextFieldSubtitle', desc: r'Description for text fields demo.'); @@ -3149,42 +3187,42 @@ class GalleryLocalizations { String get demoTextFieldTellUsAboutYourself { return Intl.message( - 'Tell us about yourself (e.g., write down what you do or what hobbies you have)', + r'Tell us about yourself (e.g., write down what you do or what hobbies you have)', locale: _localeName, name: 'demoTextFieldTellUsAboutYourself', desc: r'The placeholder text for biography/life story input field.'); } String get demoTextFieldTitle { - return Intl.message('Text fields', + return Intl.message(r'Text fields', locale: _localeName, name: 'demoTextFieldTitle', desc: r'Title for text fields demo.'); } String get demoTextFieldUSD { - return Intl.message('USD', + return Intl.message(r'USD', locale: _localeName, name: 'demoTextFieldUSD', desc: r'US currency, used as suffix in input field for salary.'); } String get demoTextFieldWhatDoPeopleCallYou { - return Intl.message('What do people call you?', + return Intl.message(r'What do people call you?', locale: _localeName, name: 'demoTextFieldWhatDoPeopleCallYou', desc: r'Placeholder for name field in form.'); } String get demoTextFieldWhereCanWeReachYou { - return Intl.message('Where can we reach you?', + return Intl.message(r'Where can we reach you?', locale: _localeName, name: 'demoTextFieldWhereCanWeReachYou', desc: r'Placeholder for when entering a phone number in a form.'); } String get demoTextFieldYourEmailAddress { - return Intl.message('Your email address', + return Intl.message(r'Your email address', locale: _localeName, name: 'demoTextFieldYourEmailAddress', desc: r'The label for an email address input field.'); @@ -3192,14 +3230,14 @@ class GalleryLocalizations { String get demoTimePickerDescription { return Intl.message( - 'Shows a dialog containing a Material Design time picker.', + r'Shows a dialog containing a Material Design time picker.', locale: _localeName, name: 'demoTimePickerDescription', desc: r'Description for time picker demo.'); } String get demoTimePickerTitle { - return Intl.message('Time Picker', + return Intl.message(r'Time Picker', locale: _localeName, name: 'demoTimePickerTitle', desc: r'Title for time picker demo.'); @@ -3207,14 +3245,14 @@ class GalleryLocalizations { String get demoToggleButtonDescription { return Intl.message( - 'Toggle buttons can be used to group related options. To emphasize groups of related toggle buttons, a group should share a common container', + r'Toggle buttons can be used to group related options. To emphasize groups of related toggle buttons, a group should share a common container', locale: _localeName, name: 'demoToggleButtonDescription', desc: r'Description for the toggle buttons component demo.'); } String get demoToggleButtonTitle { - return Intl.message('Toggle Buttons', + return Intl.message(r'Toggle Buttons', locale: _localeName, name: 'demoToggleButtonTitle', desc: r'Title for the toggle buttons component demo.'); @@ -3222,14 +3260,14 @@ class GalleryLocalizations { String get demoTooltipDescription { return Intl.message( - 'Tooltips provide text labels that help explain the function of a button or other user interface action. Tooltips display informative text when users hover over, focus on, or long press an element.', + r'Tooltips provide text labels that help explain the function of a button or other user interface action. Tooltips display informative text when users hover over, focus on, or long press an element.', locale: _localeName, name: 'demoTooltipDescription', desc: r'Description for tooltip demo.'); } String get demoTooltipInstructions { - return Intl.message('Long press or hover to display the tooltip.', + return Intl.message(r'Long press or hover to display the tooltip.', locale: _localeName, name: 'demoTooltipInstructions', desc: @@ -3237,21 +3275,21 @@ class GalleryLocalizations { } String get demoTooltipSubtitle { - return Intl.message('Short message displayed on long press or hover', + return Intl.message(r'Short message displayed on long press or hover', locale: _localeName, name: 'demoTooltipSubtitle', desc: r'Subtitle for tooltip demo.'); } String get demoTooltipTitle { - return Intl.message('Tooltips', + return Intl.message(r'Tooltips', locale: _localeName, name: 'demoTooltipTitle', desc: r'Title for tooltip demo.'); } String get demoTwoLineListsTitle { - return Intl.message('Two Lines', + return Intl.message(r'Two Lines', locale: _localeName, name: 'demoTwoLineListsTitle', desc: r'Title for lists demo with two lines of text per row.'); @@ -3259,7 +3297,7 @@ class GalleryLocalizations { String get demoTypographyDescription { return Intl.message( - 'Definitions for the various typographical styles found in Material Design.', + r'Definitions for the various typographical styles found in Material Design.', locale: _localeName, name: 'demoTypographyDescription', desc: @@ -3267,77 +3305,77 @@ class GalleryLocalizations { } String get demoTypographySubtitle { - return Intl.message('All of the predefined text styles', + return Intl.message(r'All of the predefined text styles', locale: _localeName, name: 'demoTypographySubtitle', desc: r'Subtitle for the typography demo.'); } String get demoTypographyTitle { - return Intl.message('Typography', + return Intl.message(r'Typography', locale: _localeName, name: 'demoTypographyTitle', desc: r'Title for the typography demo.'); } String get dialogAddAccount { - return Intl.message('Add account', + return Intl.message(r'Add account', locale: _localeName, name: 'dialogAddAccount', desc: r'Alert dialog option for adding an account.'); } String get dialogAgree { - return Intl.message('AGREE', + return Intl.message(r'AGREE', locale: _localeName, name: 'dialogAgree', desc: r'Alert dialog agree option.'); } String get dialogCancel { - return Intl.message('CANCEL', + return Intl.message(r'CANCEL', locale: _localeName, name: 'dialogCancel', desc: r'Alert dialog cancel option.'); } String get dialogDisagree { - return Intl.message('DISAGREE', + return Intl.message(r'DISAGREE', locale: _localeName, name: 'dialogDisagree', desc: r'Alert dialog disagree option.'); } String get dialogDiscard { - return Intl.message('DISCARD', + return Intl.message(r'DISCARD', locale: _localeName, name: 'dialogDiscard', desc: r'Alert dialog discard option.'); } String get dialogDiscardTitle { - return Intl.message('Discard draft?', + return Intl.message(r'Discard draft?', locale: _localeName, name: 'dialogDiscardTitle', desc: r'Alert dialog message to discard draft.'); } String get dialogFullscreenDescription { - return Intl.message('A full screen dialog demo', + return Intl.message(r'A full screen dialog demo', locale: _localeName, name: 'dialogFullscreenDescription', desc: r'Description for full screen dialog demo.'); } String get dialogFullscreenSave { - return Intl.message('SAVE', + return Intl.message(r'SAVE', locale: _localeName, name: 'dialogFullscreenSave', desc: r'Save button for full screen dialog demo.'); } String get dialogFullscreenTitle { - return Intl.message('Full Screen Dialog', + return Intl.message(r'Full Screen Dialog', locale: _localeName, name: 'dialogFullscreenTitle', desc: r'Title for full screen dialog demo.'); @@ -3345,21 +3383,21 @@ class GalleryLocalizations { String get dialogLocationDescription { return Intl.message( - 'Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.', + r'Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.', locale: _localeName, name: 'dialogLocationDescription', desc: r'Alert dialog description to use location services.'); } String get dialogLocationTitle { - return Intl.message('Use Google' "'" r's location service?', + return Intl.message(r'Use Google' "'" r's location service?', locale: _localeName, name: 'dialogLocationTitle', desc: r'Alert dialog title to use location services.'); } String dialogSelectedOption(Object value) { - return Intl.message('You selected: "$value"', + return Intl.message(r'You selected: "$value"', locale: _localeName, name: 'dialogSelectedOption', desc: r'Message displayed after an option is selected from a dialog', @@ -3367,21 +3405,21 @@ class GalleryLocalizations { } String get dialogSetBackup { - return Intl.message('Set backup account', + return Intl.message(r'Set backup account', locale: _localeName, name: 'dialogSetBackup', desc: r'Alert dialog title for setting a backup account.'); } String get dialogShow { - return Intl.message('SHOW DIALOG', + return Intl.message(r'SHOW DIALOG', locale: _localeName, name: 'dialogShow', desc: r'Button text to display a dialog.'); } String get dismiss { - return Intl.message('DISMISS', + return Intl.message(r'DISMISS', locale: _localeName, name: 'dismiss', desc: @@ -3389,119 +3427,119 @@ class GalleryLocalizations { } String get homeCategoryReference { - return Intl.message('REFERENCE STYLES & MEDIA', + return Intl.message(r'REFERENCE STYLES & MEDIA', locale: _localeName, name: 'homeCategoryReference', desc: r'Category title on home screen for reference styles & media.'); } String get homeHeaderCategories { - return Intl.message('Categories', + return Intl.message(r'Categories', locale: _localeName, name: 'homeHeaderCategories', desc: r'Header title on home screen for Categories section.'); } String get homeHeaderGallery { - return Intl.message('Gallery', + return Intl.message(r'Gallery', locale: _localeName, name: 'homeHeaderGallery', desc: r'Header title on home screen for Gallery section.'); } String get placeBeach { - return Intl.message('Beach', + return Intl.message(r'Beach', locale: _localeName, name: 'placeBeach', desc: r'Title for Beach location.'); } String get placeBronzeWorks { - return Intl.message('Bronze Works', + return Intl.message(r'Bronze Works', locale: _localeName, name: 'placeBronzeWorks', desc: r'Title for Bronze Works location.'); } String get placeChennai { - return Intl.message('Chennai', + return Intl.message(r'Chennai', locale: _localeName, name: 'placeChennai', desc: r'Title for Chennai location.'); } String get placeChettinad { - return Intl.message('Chettinad', + return Intl.message(r'Chettinad', locale: _localeName, name: 'placeChettinad', desc: r'Title for Chettinad location.'); } String get placeFisherman { - return Intl.message('Fisherman', + return Intl.message(r'Fisherman', locale: _localeName, name: 'placeFisherman', desc: r'Title for an image of a fisherman.'); } String get placeFlowerMarket { - return Intl.message('Flower Market', + return Intl.message(r'Flower Market', locale: _localeName, name: 'placeFlowerMarket', desc: r'Title for Flower Market location.'); } String get placeLunchPrep { - return Intl.message('Lunch Prep', + return Intl.message(r'Lunch Prep', locale: _localeName, name: 'placeLunchPrep', desc: r'Title for an image of preparing lunch.'); } String get placeMarket { - return Intl.message('Market', + return Intl.message(r'Market', locale: _localeName, name: 'placeMarket', desc: r'Title for Market location.'); } String get placePondicherry { - return Intl.message('Pondicherry', + return Intl.message(r'Pondicherry', locale: _localeName, name: 'placePondicherry', desc: r'Title for Pondicherry location.'); } String get placeSaltFarm { - return Intl.message('Salt Farm', + return Intl.message(r'Salt Farm', locale: _localeName, name: 'placeSaltFarm', desc: r'Title for Salt Farm location.'); } String get placeScooters { - return Intl.message('Scooters', + return Intl.message(r'Scooters', locale: _localeName, name: 'placeScooters', desc: r'Title for image of people riding on scooters.'); } String get placeSilkMaker { - return Intl.message('Silk Maker', + return Intl.message(r'Silk Maker', locale: _localeName, name: 'placeSilkMaker', desc: r'Title for an image of a silk maker.'); } String get placeTanjore { - return Intl.message('Tanjore', + return Intl.message(r'Tanjore', locale: _localeName, name: 'placeTanjore', desc: r'Title for Tanjore location.'); } String get placeThanjavurTemple { - return Intl.message('Thanjavur Temple', + return Intl.message(r'Thanjavur Temple', locale: _localeName, name: 'placeThanjavurTemple', desc: r'Title for Thanjavur Temple location.'); @@ -3509,7 +3547,7 @@ class GalleryLocalizations { String rallyAccountAmount( Object accountName, Object accountNumber, Object amount) { - return Intl.message('$accountName account $accountNumber with $amount.', + return Intl.message(r'$accountName account $accountNumber with $amount.', locale: _localeName, name: 'rallyAccountAmount', desc: @@ -3518,35 +3556,35 @@ class GalleryLocalizations { } String get rallyAccountDataCarSavings { - return Intl.message('Car Savings', + return Intl.message(r'Car Savings', locale: _localeName, name: 'rallyAccountDataCarSavings', desc: r'Name for account made up by user.'); } String get rallyAccountDataChecking { - return Intl.message('Checking', + return Intl.message(r'Checking', locale: _localeName, name: 'rallyAccountDataChecking', desc: r'Name for account made up by user.'); } String get rallyAccountDataHomeSavings { - return Intl.message('Home Savings', + return Intl.message(r'Home Savings', locale: _localeName, name: 'rallyAccountDataHomeSavings', desc: r'Name for account made up by user.'); } String get rallyAccountDataVacation { - return Intl.message('Vacation', + return Intl.message(r'Vacation', locale: _localeName, name: 'rallyAccountDataVacation', desc: r'Name for account made up by user.'); } String get rallyAccountDetailDataAccountOwner { - return Intl.message('Account Owner', + return Intl.message(r'Account Owner', locale: _localeName, name: 'rallyAccountDetailDataAccountOwner', desc: @@ -3554,7 +3592,7 @@ class GalleryLocalizations { } String get rallyAccountDetailDataAnnualPercentageYield { - return Intl.message('Annual Percentage Yield', + return Intl.message(r'Annual Percentage Yield', locale: _localeName, name: 'rallyAccountDetailDataAnnualPercentageYield', desc: @@ -3562,7 +3600,7 @@ class GalleryLocalizations { } String get rallyAccountDetailDataInterestPaidLastYear { - return Intl.message('Interest Paid Last Year', + return Intl.message(r'Interest Paid Last Year', locale: _localeName, name: 'rallyAccountDetailDataInterestPaidLastYear', desc: @@ -3570,7 +3608,7 @@ class GalleryLocalizations { } String get rallyAccountDetailDataInterestRate { - return Intl.message('Interest Rate', + return Intl.message(r'Interest Rate', locale: _localeName, name: 'rallyAccountDetailDataInterestRate', desc: @@ -3578,7 +3616,7 @@ class GalleryLocalizations { } String get rallyAccountDetailDataInterestYtd { - return Intl.message('Interest YTD', + return Intl.message(r'Interest YTD', locale: _localeName, name: 'rallyAccountDetailDataInterestYtd', desc: @@ -3586,7 +3624,7 @@ class GalleryLocalizations { } String get rallyAccountDetailDataNextStatement { - return Intl.message('Next Statement', + return Intl.message(r'Next Statement', locale: _localeName, name: 'rallyAccountDetailDataNextStatement', desc: @@ -3594,7 +3632,7 @@ class GalleryLocalizations { } String get rallyAccountTotal { - return Intl.message('Total', + return Intl.message(r'Total', locale: _localeName, name: 'rallyAccountTotal', desc: r'Title for ' @@ -3605,21 +3643,21 @@ class GalleryLocalizations { } String get rallyAccounts { - return Intl.message('Accounts', + return Intl.message(r'Accounts', locale: _localeName, name: 'rallyAccounts', desc: r'Link text for accounts page.'); } String get rallyAlerts { - return Intl.message('Alerts', + return Intl.message(r'Alerts', locale: _localeName, name: 'rallyAlerts', desc: r'Title for alerts part of overview page.'); } String rallyAlertsMessageATMFees(Object amount) { - return Intl.message('You’ve spent $amount in ATM fees this month', + return Intl.message(r'You’ve spent $amount in ATM fees this month', locale: _localeName, name: 'rallyAlertsMessageATMFees', desc: @@ -3629,7 +3667,7 @@ class GalleryLocalizations { String rallyAlertsMessageCheckingAccount(Object percent) { return Intl.message( - 'Good work! Your checking account is $percent higher than last month.', + r'Good work! Your checking account is $percent higher than last month.', locale: _localeName, name: 'rallyAlertsMessageCheckingAccount', desc: @@ -3639,7 +3677,7 @@ class GalleryLocalizations { String rallyAlertsMessageHeadsUpShopping(Object percent) { return Intl.message( - 'Heads up, you’ve used up $percent of your Shopping budget for this month.', + r'Heads up, you’ve used up $percent of your Shopping budget for this month.', locale: _localeName, name: 'rallyAlertsMessageHeadsUpShopping', desc: r'Alert message shown when for example, user has used more than 90% of their shopping budget.', @@ -3647,7 +3685,7 @@ class GalleryLocalizations { } String rallyAlertsMessageSpentOnRestaurants(Object amount) { - return Intl.message('You’ve spent $amount on Restaurants this week.', + return Intl.message(r'You’ve spent $amount on Restaurants this week.', locale: _localeName, name: 'rallyAlertsMessageSpentOnRestaurants', desc: @@ -3668,7 +3706,7 @@ class GalleryLocalizations { } String rallyBillAmount(Object billName, Object date, Object amount) { - return Intl.message('$billName bill due $date for $amount.', + return Intl.message(r'$billName bill due $date for $amount.', locale: _localeName, name: 'rallyBillAmount', desc: @@ -3677,14 +3715,14 @@ class GalleryLocalizations { } String get rallyBills { - return Intl.message('Bills', + return Intl.message(r'Bills', locale: _localeName, name: 'rallyBills', desc: r'Link text for bills page.'); } String get rallyBillsDue { - return Intl.message('Due', + return Intl.message(r'Due', locale: _localeName, name: 'rallyBillsDue', desc: r'Title for ' @@ -3697,7 +3735,7 @@ class GalleryLocalizations { String rallyBudgetAmount(Object budgetName, Object amountUsed, Object amountTotal, Object amountLeft) { return Intl.message( - '$budgetName budget with $amountUsed used of $amountTotal, $amountLeft left', + r'$budgetName budget with $amountUsed used of $amountTotal, $amountLeft left', locale: _localeName, name: 'rallyBudgetAmount', desc: r'Semantics label for row with a budget (housing budget for example), with how much is used of the budget (for example $5), the total budget (for example $100) and the amount left in the budget (for example $95).', @@ -3705,35 +3743,35 @@ class GalleryLocalizations { } String get rallyBudgetCategoryClothing { - return Intl.message('Clothing', + return Intl.message(r'Clothing', locale: _localeName, name: 'rallyBudgetCategoryClothing', desc: r'Category for budget, to sort expenses / bills in.'); } String get rallyBudgetCategoryCoffeeShops { - return Intl.message('Coffee Shops', + return Intl.message(r'Coffee Shops', locale: _localeName, name: 'rallyBudgetCategoryCoffeeShops', desc: r'Category for budget, to sort expenses / bills in.'); } String get rallyBudgetCategoryGroceries { - return Intl.message('Groceries', + return Intl.message(r'Groceries', locale: _localeName, name: 'rallyBudgetCategoryGroceries', desc: r'Category for budget, to sort expenses / bills in.'); } String get rallyBudgetCategoryRestaurants { - return Intl.message('Restaurants', + return Intl.message(r'Restaurants', locale: _localeName, name: 'rallyBudgetCategoryRestaurants', desc: r'Category for budget, to sort expenses / bills in.'); } String get rallyBudgetLeft { - return Intl.message('Left', + return Intl.message(r'Left', locale: _localeName, name: 'rallyBudgetLeft', desc: r'Title for ' @@ -3744,21 +3782,21 @@ class GalleryLocalizations { } String get rallyBudgets { - return Intl.message('Budgets', + return Intl.message(r'Budgets', locale: _localeName, name: 'rallyBudgets', desc: r'Link text for budgets page.'); } String get rallyDescription { - return Intl.message('A personal finance app', + return Intl.message(r'A personal finance app', locale: _localeName, name: 'rallyDescription', desc: r'Study description for Rally.'); } String get rallyFinanceLeft { - return Intl.message(' LEFT', + return Intl.message(r' LEFT', locale: _localeName, name: 'rallyFinanceLeft', desc: r'Displayed as ' @@ -3769,21 +3807,21 @@ class GalleryLocalizations { } String get rallyLoginButtonLogin { - return Intl.message('LOGIN', + return Intl.message(r'LOGIN', locale: _localeName, name: 'rallyLoginButtonLogin', desc: r'Text for login button.'); } String get rallyLoginLabelLogin { - return Intl.message('Login', + return Intl.message(r'Login', locale: _localeName, name: 'rallyLoginLabelLogin', desc: r'The label text to login.'); } String get rallyLoginLoginToRally { - return Intl.message('Login to Rally', + return Intl.message(r'Login to Rally', locale: _localeName, name: 'rallyLoginLoginToRally', desc: @@ -3791,49 +3829,49 @@ class GalleryLocalizations { } String get rallyLoginNoAccount { - return Intl.message('Don' "'" r't have an account?', + return Intl.message(r'Don' "'" r't have an account?', locale: _localeName, name: 'rallyLoginNoAccount', desc: r'Prompt for signing up for an account.'); } String get rallyLoginPassword { - return Intl.message('Password', + return Intl.message(r'Password', locale: _localeName, name: 'rallyLoginPassword', desc: r'The password field in an login form.'); } String get rallyLoginRememberMe { - return Intl.message('Remember Me', + return Intl.message(r'Remember Me', locale: _localeName, name: 'rallyLoginRememberMe', desc: r'Text if the user wants to stay logged in.'); } String get rallyLoginSignUp { - return Intl.message('SIGN UP', + return Intl.message(r'SIGN UP', locale: _localeName, name: 'rallyLoginSignUp', desc: r'Button text to sign up for an account.'); } String get rallyLoginUsername { - return Intl.message('Username', + return Intl.message(r'Username', locale: _localeName, name: 'rallyLoginUsername', desc: r'The username field in an login form.'); } String get rallySeeAll { - return Intl.message('SEE ALL', + return Intl.message(r'SEE ALL', locale: _localeName, name: 'rallySeeAll', desc: r'Link text for button to see all data for category.'); } String get rallySeeAllAccounts { - return Intl.message('See all accounts', + return Intl.message(r'See all accounts', locale: _localeName, name: 'rallySeeAllAccounts', desc: @@ -3841,126 +3879,126 @@ class GalleryLocalizations { } String get rallySeeAllBills { - return Intl.message('See all bills', + return Intl.message(r'See all bills', locale: _localeName, name: 'rallySeeAllBills', desc: r'Semantics label for button to see all bills.'); } String get rallySeeAllBudgets { - return Intl.message('See all budgets', + return Intl.message(r'See all budgets', locale: _localeName, name: 'rallySeeAllBudgets', desc: r'Semantics label for button to see all budgets.'); } String get rallySettingsFindAtms { - return Intl.message('Find ATMs', + return Intl.message(r'Find ATMs', locale: _localeName, name: 'rallySettingsFindAtms', desc: r'Link to go to the page ' "'" r'Find ATMs' "'" r'.'); } String get rallySettingsHelp { - return Intl.message('Help', + return Intl.message(r'Help', locale: _localeName, name: 'rallySettingsHelp', desc: r'Link to go to the page ' "'" r'Help' "'" r'.'); } String get rallySettingsManageAccounts { - return Intl.message('Manage Accounts', + return Intl.message(r'Manage Accounts', locale: _localeName, name: 'rallySettingsManageAccounts', desc: r'Link to go to the page ' "'" r'Manage Accounts.'); } String get rallySettingsNotifications { - return Intl.message('Notifications', + return Intl.message(r'Notifications', locale: _localeName, name: 'rallySettingsNotifications', desc: r'Link to go to the page ' "'" r'Notifications' "'" r'.'); } String get rallySettingsPaperlessSettings { - return Intl.message('Paperless Settings', + return Intl.message(r'Paperless Settings', locale: _localeName, name: 'rallySettingsPaperlessSettings', desc: r'Link to go to the page ' "'" r'Paperless Settings' "'" r'.'); } String get rallySettingsPasscodeAndTouchId { - return Intl.message('Passcode and Touch ID', + return Intl.message(r'Passcode and Touch ID', locale: _localeName, name: 'rallySettingsPasscodeAndTouchId', desc: r'Link to go to the page ' "'" r'Passcode and Touch ID' "'" r'.'); } String get rallySettingsPersonalInformation { - return Intl.message('Personal Information', + return Intl.message(r'Personal Information', locale: _localeName, name: 'rallySettingsPersonalInformation', desc: r'Link to go to the page ' "'" r'Personal Information' "'" r'.'); } String get rallySettingsSignOut { - return Intl.message('Sign out', + return Intl.message(r'Sign out', locale: _localeName, name: 'rallySettingsSignOut', desc: r'Link to go to the page ' "'" r'Sign out' "'" r'.'); } String get rallySettingsTaxDocuments { - return Intl.message('Tax Documents', + return Intl.message(r'Tax Documents', locale: _localeName, name: 'rallySettingsTaxDocuments', desc: r'Link to go to the page ' "'" r'Tax Documents' "'" r'.'); } String get rallyTitleAccounts { - return Intl.message('ACCOUNTS', + return Intl.message(r'ACCOUNTS', locale: _localeName, name: 'rallyTitleAccounts', desc: r'The navigation link to the accounts page.'); } String get rallyTitleBills { - return Intl.message('BILLS', + return Intl.message(r'BILLS', locale: _localeName, name: 'rallyTitleBills', desc: r'The navigation link to the bills page.'); } String get rallyTitleBudgets { - return Intl.message('BUDGETS', + return Intl.message(r'BUDGETS', locale: _localeName, name: 'rallyTitleBudgets', desc: r'The navigation link to the budgets page.'); } String get rallyTitleOverview { - return Intl.message('OVERVIEW', + return Intl.message(r'OVERVIEW', locale: _localeName, name: 'rallyTitleOverview', desc: r'The navigation link to the overview page.'); } String get rallyTitleSettings { - return Intl.message('SETTINGS', + return Intl.message(r'SETTINGS', locale: _localeName, name: 'rallyTitleSettings', desc: r'The navigation link to the settings page.'); } String get settingsAbout { - return Intl.message('About Flutter Gallery', + return Intl.message(r'About Flutter Gallery', locale: _localeName, name: 'settingsAbout', desc: r'Title for information button.'); } String get settingsAttribution { - return Intl.message('Designed by TOASTER in London', + return Intl.message(r'Designed by TOASTER in London', locale: _localeName, name: 'settingsAttribution', desc: @@ -3968,7 +4006,7 @@ class GalleryLocalizations { } String get settingsButtonCloseLabel { - return Intl.message('Close settings', + return Intl.message(r'Close settings', locale: _localeName, name: 'settingsButtonCloseLabel', desc: @@ -3976,7 +4014,7 @@ class GalleryLocalizations { } String get settingsButtonLabel { - return Intl.message('Settings', + return Intl.message(r'Settings', locale: _localeName, name: 'settingsButtonLabel', desc: @@ -3984,147 +4022,147 @@ class GalleryLocalizations { } String get settingsDarkTheme { - return Intl.message('Dark', + return Intl.message(r'Dark', locale: _localeName, name: 'settingsDarkTheme', desc: r'Title for the dark theme setting.'); } String get settingsFeedback { - return Intl.message('Send feedback', + return Intl.message(r'Send feedback', locale: _localeName, name: 'settingsFeedback', desc: r'Title for feedback button.'); } String get settingsLightTheme { - return Intl.message('Light', + return Intl.message(r'Light', locale: _localeName, name: 'settingsLightTheme', desc: r'Title for the light theme setting.'); } String get settingsLocale { - return Intl.message('Locale', + return Intl.message(r'Locale', locale: _localeName, name: 'settingsLocale', desc: r'Title for locale setting.'); } String get settingsPlatformAndroid { - return Intl.message('Android', + return Intl.message(r'Android', locale: _localeName, name: 'settingsPlatformAndroid', desc: r'Title for Android platform setting.'); } String get settingsPlatformIOS { - return Intl.message('iOS', + return Intl.message(r'iOS', locale: _localeName, name: 'settingsPlatformIOS', desc: r'Title for iOS platform setting.'); } String get settingsPlatformMechanics { - return Intl.message('Platform mechanics', + return Intl.message(r'Platform mechanics', locale: _localeName, name: 'settingsPlatformMechanics', desc: r'Title for platform mechanics (iOS/Android) setting.'); } String get settingsSlowMotion { - return Intl.message('Slow motion', + return Intl.message(r'Slow motion', locale: _localeName, name: 'settingsSlowMotion', desc: r'Title for slow motion setting.'); } String get settingsSystemDefault { - return Intl.message('System', + return Intl.message(r'System', locale: _localeName, name: 'settingsSystemDefault', desc: r'Option label to indicate the system default will be used.'); } String get settingsTextDirection { - return Intl.message('Text direction', + return Intl.message(r'Text direction', locale: _localeName, name: 'settingsTextDirection', desc: r'Title for text direction setting.'); } String get settingsTextDirectionLTR { - return Intl.message('LTR', + return Intl.message(r'LTR', locale: _localeName, name: 'settingsTextDirectionLTR', desc: r'Option label for left-to-right text direction setting.'); } String get settingsTextDirectionLocaleBased { - return Intl.message('Based on locale', + return Intl.message(r'Based on locale', locale: _localeName, name: 'settingsTextDirectionLocaleBased', desc: r'Option label for locale-based text direction setting.'); } String get settingsTextDirectionRTL { - return Intl.message('RTL', + return Intl.message(r'RTL', locale: _localeName, name: 'settingsTextDirectionRTL', desc: r'Option label for right-to-left text direction setting.'); } String get settingsTextScaling { - return Intl.message('Text scaling', + return Intl.message(r'Text scaling', locale: _localeName, name: 'settingsTextScaling', desc: r'Title for text scaling setting.'); } String get settingsTextScalingHuge { - return Intl.message('Huge', + return Intl.message(r'Huge', locale: _localeName, name: 'settingsTextScalingHuge', desc: r'Option label for huge text scale setting.'); } String get settingsTextScalingLarge { - return Intl.message('Large', + return Intl.message(r'Large', locale: _localeName, name: 'settingsTextScalingLarge', desc: r'Option label for large text scale setting.'); } String get settingsTextScalingNormal { - return Intl.message('Normal', + return Intl.message(r'Normal', locale: _localeName, name: 'settingsTextScalingNormal', desc: r'Option label for normal text scale setting.'); } String get settingsTextScalingSmall { - return Intl.message('Small', + return Intl.message(r'Small', locale: _localeName, name: 'settingsTextScalingSmall', desc: r'Option label for small text scale setting.'); } String get settingsTheme { - return Intl.message('Theme', + return Intl.message(r'Theme', locale: _localeName, name: 'settingsTheme', desc: r'Title for the theme setting.'); } String get settingsTitle { - return Intl.message('Settings', + return Intl.message(r'Settings', locale: _localeName, name: 'settingsTitle', desc: r'Title for the settings screen.'); } String get shrineCancelButtonCaption { - return Intl.message('CANCEL', + return Intl.message(r'CANCEL', locale: _localeName, name: 'shrineCancelButtonCaption', desc: @@ -4132,7 +4170,7 @@ class GalleryLocalizations { } String get shrineCartClearButtonCaption { - return Intl.message('CLEAR CART', + return Intl.message(r'CLEAR CART', locale: _localeName, name: 'shrineCartClearButtonCaption', desc: r'Caption for a button used to clear the cart.'); @@ -4150,14 +4188,14 @@ class GalleryLocalizations { } String get shrineCartPageCaption { - return Intl.message('CART', + return Intl.message(r'CART', locale: _localeName, name: 'shrineCartPageCaption', desc: r'Caption for a shopping cart page.'); } String get shrineCartShippingCaption { - return Intl.message('Shipping:', + return Intl.message(r'Shipping:', locale: _localeName, name: 'shrineCartShippingCaption', desc: @@ -4165,7 +4203,7 @@ class GalleryLocalizations { } String get shrineCartSubtotalCaption { - return Intl.message('Subtotal:', + return Intl.message(r'Subtotal:', locale: _localeName, name: 'shrineCartSubtotalCaption', desc: @@ -4173,14 +4211,14 @@ class GalleryLocalizations { } String get shrineCartTaxCaption { - return Intl.message('Tax:', + return Intl.message(r'Tax:', locale: _localeName, name: 'shrineCartTaxCaption', desc: r'Label for a text showing the tax for the items in the cart.'); } String get shrineCartTotalCaption { - return Intl.message('TOTAL', + return Intl.message(r'TOTAL', locale: _localeName, name: 'shrineCartTotalCaption', desc: @@ -4188,7 +4226,7 @@ class GalleryLocalizations { } String get shrineCategoryNameAccessories { - return Intl.message('ACCESSORIES', + return Intl.message(r'ACCESSORIES', locale: _localeName, name: 'shrineCategoryNameAccessories', desc: @@ -4196,35 +4234,35 @@ class GalleryLocalizations { } String get shrineCategoryNameAll { - return Intl.message('ALL', + return Intl.message(r'ALL', locale: _localeName, name: 'shrineCategoryNameAll', desc: r'A tab showing products from all categories.'); } String get shrineCategoryNameClothing { - return Intl.message('CLOTHING', + return Intl.message(r'CLOTHING', locale: _localeName, name: 'shrineCategoryNameClothing', desc: r'A category of products consisting of clothing.'); } String get shrineCategoryNameHome { - return Intl.message('HOME', + return Intl.message(r'HOME', locale: _localeName, name: 'shrineCategoryNameHome', desc: r'A category of products consisting of items used at home.'); } String get shrineDescription { - return Intl.message('A fashionable retail app', + return Intl.message(r'A fashionable retail app', locale: _localeName, name: 'shrineDescription', desc: r'Study description for Shrine.'); } String get shrineLoginPasswordLabel { - return Intl.message('Password', + return Intl.message(r'Password', locale: _localeName, name: 'shrineLoginPasswordLabel', desc: @@ -4232,7 +4270,7 @@ class GalleryLocalizations { } String get shrineLoginUsernameLabel { - return Intl.message('Username', + return Intl.message(r'Username', locale: _localeName, name: 'shrineLoginUsernameLabel', desc: @@ -4240,21 +4278,21 @@ class GalleryLocalizations { } String get shrineLogoutButtonCaption { - return Intl.message('LOGOUT', + return Intl.message(r'LOGOUT', locale: _localeName, name: 'shrineLogoutButtonCaption', desc: r'Label for a logout button.'); } String get shrineMenuCaption { - return Intl.message('MENU', + return Intl.message(r'MENU', locale: _localeName, name: 'shrineMenuCaption', desc: r'Caption for a menu page.'); } String get shrineNextButtonCaption { - return Intl.message('NEXT', + return Intl.message(r'NEXT', locale: _localeName, name: 'shrineNextButtonCaption', desc: @@ -4262,133 +4300,133 @@ class GalleryLocalizations { } String get shrineProductBlueStoneMug { - return Intl.message('Blue stone mug', + return Intl.message(r'Blue stone mug', locale: _localeName, name: 'shrineProductBlueStoneMug', desc: r'Name of the product ' "'" r'Blue stone mug' "'" r'.'); } String get shrineProductCeriseScallopTee { - return Intl.message('Cerise scallop tee', + return Intl.message(r'Cerise scallop tee', locale: _localeName, name: 'shrineProductCeriseScallopTee', desc: r'Name of the product ' "'" r'Cerise scallop tee' "'" r'.'); } String get shrineProductChambrayNapkins { - return Intl.message('Chambray napkins', + return Intl.message(r'Chambray napkins', locale: _localeName, name: 'shrineProductChambrayNapkins', desc: r'Name of the product ' "'" r'Chambray napkins' "'" r'.'); } String get shrineProductChambrayShirt { - return Intl.message('Chambray shirt', + return Intl.message(r'Chambray shirt', locale: _localeName, name: 'shrineProductChambrayShirt', desc: r'Name of the product ' "'" r'Chambray shirt' "'" r'.'); } String get shrineProductClassicWhiteCollar { - return Intl.message('Classic white collar', + return Intl.message(r'Classic white collar', locale: _localeName, name: 'shrineProductClassicWhiteCollar', desc: r'Name of the product ' "'" r'Classic white collar' "'" r'.'); } String get shrineProductClaySweater { - return Intl.message('Clay sweater', + return Intl.message(r'Clay sweater', locale: _localeName, name: 'shrineProductClaySweater', desc: r'Name of the product ' "'" r'Clay sweater' "'" r'.'); } String get shrineProductCopperWireRack { - return Intl.message('Copper wire rack', + return Intl.message(r'Copper wire rack', locale: _localeName, name: 'shrineProductCopperWireRack', desc: r'Name of the product ' "'" r'Copper wire rack' "'" r'.'); } String get shrineProductFineLinesTee { - return Intl.message('Fine lines tee', + return Intl.message(r'Fine lines tee', locale: _localeName, name: 'shrineProductFineLinesTee', desc: r'Name of the product ' "'" r'Fine lines tee' "'" r'.'); } String get shrineProductGardenStrand { - return Intl.message('Garden strand', + return Intl.message(r'Garden strand', locale: _localeName, name: 'shrineProductGardenStrand', desc: r'Name of the product ' "'" r'Garden strand' "'" r'.'); } String get shrineProductGatsbyHat { - return Intl.message('Gatsby hat', + return Intl.message(r'Gatsby hat', locale: _localeName, name: 'shrineProductGatsbyHat', desc: r'Name of the product ' "'" r'Gatsby hat' "'" r'.'); } String get shrineProductGentryJacket { - return Intl.message('Gentry jacket', + return Intl.message(r'Gentry jacket', locale: _localeName, name: 'shrineProductGentryJacket', desc: r'Name of the product ' "'" r'Gentry jacket' "'" r'.'); } String get shrineProductGiltDeskTrio { - return Intl.message('Gilt desk trio', + return Intl.message(r'Gilt desk trio', locale: _localeName, name: 'shrineProductGiltDeskTrio', desc: r'Name of the product ' "'" r'Gilt desk trio' "'" r'.'); } String get shrineProductGingerScarf { - return Intl.message('Ginger scarf', + return Intl.message(r'Ginger scarf', locale: _localeName, name: 'shrineProductGingerScarf', desc: r'Name of the product ' "'" r'Ginger scarf' "'" r'.'); } String get shrineProductGreySlouchTank { - return Intl.message('Grey slouch tank', + return Intl.message(r'Grey slouch tank', locale: _localeName, name: 'shrineProductGreySlouchTank', desc: r'Name of the product ' "'" r'Grey slouch tank' "'" r'.'); } String get shrineProductHurrahsTeaSet { - return Intl.message('Hurrahs tea set', + return Intl.message(r'Hurrahs tea set', locale: _localeName, name: 'shrineProductHurrahsTeaSet', desc: r'Name of the product ' "'" r'Hurrahs tea set' "'" r'.'); } String get shrineProductKitchenQuattro { - return Intl.message('Kitchen quattro', + return Intl.message(r'Kitchen quattro', locale: _localeName, name: 'shrineProductKitchenQuattro', desc: r'Name of the product ' "'" r'Kitchen quattro' "'" r'.'); } String get shrineProductNavyTrousers { - return Intl.message('Navy trousers', + return Intl.message(r'Navy trousers', locale: _localeName, name: 'shrineProductNavyTrousers', desc: r'Name of the product ' "'" r'Navy trousers' "'" r'.'); } String get shrineProductPlasterTunic { - return Intl.message('Plaster tunic', + return Intl.message(r'Plaster tunic', locale: _localeName, name: 'shrineProductPlasterTunic', desc: r'Name of the product ' "'" r'Plaster tunic' "'" r'.'); } String shrineProductPrice(Object price) { - return Intl.message('x $price', + return Intl.message(r'x $price', locale: _localeName, name: 'shrineProductPrice', desc: r'A text showing the unit price of each product. Used as: ' @@ -4400,7 +4438,7 @@ class GalleryLocalizations { } String shrineProductQuantity(Object quantity) { - return Intl.message('Quantity: $quantity', + return Intl.message(r'Quantity: $quantity', locale: _localeName, name: 'shrineProductQuantity', desc: r'A text showing the number of items for a specific product.', @@ -4408,133 +4446,133 @@ class GalleryLocalizations { } String get shrineProductQuartetTable { - return Intl.message('Quartet table', + return Intl.message(r'Quartet table', locale: _localeName, name: 'shrineProductQuartetTable', desc: r'Name of the product ' "'" r'Quartet table' "'" r'.'); } String get shrineProductRainwaterTray { - return Intl.message('Rainwater tray', + return Intl.message(r'Rainwater tray', locale: _localeName, name: 'shrineProductRainwaterTray', desc: r'Name of the product ' "'" r'Rainwater tray' "'" r'.'); } String get shrineProductRamonaCrossover { - return Intl.message('Ramona crossover', + return Intl.message(r'Ramona crossover', locale: _localeName, name: 'shrineProductRamonaCrossover', desc: r'Name of the product ' "'" r'Ramona crossover' "'" r'.'); } String get shrineProductSeaTunic { - return Intl.message('Sea tunic', + return Intl.message(r'Sea tunic', locale: _localeName, name: 'shrineProductSeaTunic', desc: r'Name of the product ' "'" r'Sea tunic' "'" r'.'); } String get shrineProductSeabreezeSweater { - return Intl.message('Seabreeze sweater', + return Intl.message(r'Seabreeze sweater', locale: _localeName, name: 'shrineProductSeabreezeSweater', desc: r'Name of the product ' "'" r'Seabreeze sweater' "'" r'.'); } String get shrineProductShoulderRollsTee { - return Intl.message('Shoulder rolls tee', + return Intl.message(r'Shoulder rolls tee', locale: _localeName, name: 'shrineProductShoulderRollsTee', desc: r'Name of the product ' "'" r'Shoulder rolls tee' "'" r'.'); } String get shrineProductShrugBag { - return Intl.message('Shrug bag', + return Intl.message(r'Shrug bag', locale: _localeName, name: 'shrineProductShrugBag', desc: r'Name of the product ' "'" r'Shrug bag' "'" r'.'); } String get shrineProductSootheCeramicSet { - return Intl.message('Soothe ceramic set', + return Intl.message(r'Soothe ceramic set', locale: _localeName, name: 'shrineProductSootheCeramicSet', desc: r'Name of the product ' "'" r'Soothe ceramic set' "'" r'.'); } String get shrineProductStellaSunglasses { - return Intl.message('Stella sunglasses', + return Intl.message(r'Stella sunglasses', locale: _localeName, name: 'shrineProductStellaSunglasses', desc: r'Name of the product ' "'" r'Stella sunglasses' "'" r'.'); } String get shrineProductStrutEarrings { - return Intl.message('Strut earrings', + return Intl.message(r'Strut earrings', locale: _localeName, name: 'shrineProductStrutEarrings', desc: r'Name of the product ' "'" r'Strut earrings' "'" r'.'); } String get shrineProductSucculentPlanters { - return Intl.message('Succulent planters', + return Intl.message(r'Succulent planters', locale: _localeName, name: 'shrineProductSucculentPlanters', desc: r'Name of the product ' "'" r'Succulent planters' "'" r'.'); } String get shrineProductSunshirtDress { - return Intl.message('Sunshirt dress', + return Intl.message(r'Sunshirt dress', locale: _localeName, name: 'shrineProductSunshirtDress', desc: r'Name of the product ' "'" r'Sunshirt dress' "'" r'.'); } String get shrineProductSurfAndPerfShirt { - return Intl.message('Surf and perf shirt', + return Intl.message(r'Surf and perf shirt', locale: _localeName, name: 'shrineProductSurfAndPerfShirt', desc: r'Name of the product ' "'" r'Surf and perf shirt' "'" r'.'); } String get shrineProductVagabondSack { - return Intl.message('Vagabond sack', + return Intl.message(r'Vagabond sack', locale: _localeName, name: 'shrineProductVagabondSack', desc: r'Name of the product ' "'" r'Vagabond sack' "'" r'.'); } String get shrineProductVarsitySocks { - return Intl.message('Varsity socks', + return Intl.message(r'Varsity socks', locale: _localeName, name: 'shrineProductVarsitySocks', desc: r'Name of the product ' "'" r'Varsity socks' "'" r'.'); } String get shrineProductWalterHenleyWhite { - return Intl.message('Walter henley (white)', + return Intl.message(r'Walter henley (white)', locale: _localeName, name: 'shrineProductWalterHenleyWhite', desc: r'Name of the product ' "'" r'Walter henley (white)' "'" r'.'); } String get shrineProductWeaveKeyring { - return Intl.message('Weave keyring', + return Intl.message(r'Weave keyring', locale: _localeName, name: 'shrineProductWeaveKeyring', desc: r'Name of the product ' "'" r'Weave keyring' "'" r'.'); } String get shrineProductWhitePinstripeShirt { - return Intl.message('White pinstripe shirt', + return Intl.message(r'White pinstripe shirt', locale: _localeName, name: 'shrineProductWhitePinstripeShirt', desc: r'Name of the product ' "'" r'White pinstripe shirt' "'" r'.'); } String get shrineProductWhitneyBelt { - return Intl.message('Whitney belt', + return Intl.message(r'Whitney belt', locale: _localeName, name: 'shrineProductWhitneyBelt', desc: r'Name of the product ' "'" r'Whitney belt' "'" r'.'); @@ -4553,7 +4591,7 @@ class GalleryLocalizations { } String get shrineScreenReaderProductAddToCart { - return Intl.message('Add to cart', + return Intl.message(r'Add to cart', locale: _localeName, name: 'shrineScreenReaderProductAddToCart', desc: @@ -4561,7 +4599,7 @@ class GalleryLocalizations { } String shrineScreenReaderRemoveProductButton(Object product) { - return Intl.message('Remove $product', + return Intl.message(r'Remove $product', locale: _localeName, name: 'shrineScreenReaderRemoveProductButton', desc: @@ -4570,7 +4608,7 @@ class GalleryLocalizations { } String get shrineTooltipCloseCart { - return Intl.message('Close cart', + return Intl.message(r'Close cart', locale: _localeName, name: 'shrineTooltipCloseCart', desc: @@ -4578,7 +4616,7 @@ class GalleryLocalizations { } String get shrineTooltipCloseMenu { - return Intl.message('Close menu', + return Intl.message(r'Close menu', locale: _localeName, name: 'shrineTooltipCloseMenu', desc: @@ -4586,7 +4624,7 @@ class GalleryLocalizations { } String get shrineTooltipOpenMenu { - return Intl.message('Open menu', + return Intl.message(r'Open menu', locale: _localeName, name: 'shrineTooltipOpenMenu', desc: @@ -4594,7 +4632,7 @@ class GalleryLocalizations { } String get shrineTooltipRemoveItem { - return Intl.message('Remove item', + return Intl.message(r'Remove item', locale: _localeName, name: 'shrineTooltipRemoveItem', desc: @@ -4602,7 +4640,7 @@ class GalleryLocalizations { } String get shrineTooltipSearch { - return Intl.message('Search', + return Intl.message(r'Search', locale: _localeName, name: 'shrineTooltipSearch', desc: @@ -4610,7 +4648,7 @@ class GalleryLocalizations { } String get shrineTooltipSettings { - return Intl.message('Settings', + return Intl.message(r'Settings', locale: _localeName, name: 'shrineTooltipSettings', desc: @@ -4618,21 +4656,21 @@ class GalleryLocalizations { } String get signIn { - return Intl.message('SIGN IN', + return Intl.message(r'SIGN IN', locale: _localeName, name: 'signIn', desc: r'Sign in label to sign into website.'); } String get starterAppDescription { - return Intl.message('A responsive starter layout', + return Intl.message(r'A responsive starter layout', locale: _localeName, name: 'starterAppDescription', desc: r'The description for the starter app.'); } String starterAppDrawerItem(Object value) { - return Intl.message('Item $value', + return Intl.message(r'Item $value', locale: _localeName, name: 'starterAppDrawerItem', desc: r'Generic placeholder drawer item.', @@ -4640,70 +4678,70 @@ class GalleryLocalizations { } String get starterAppGenericBody { - return Intl.message('Body', + return Intl.message(r'Body', locale: _localeName, name: 'starterAppGenericBody', desc: r'Generic placeholder for body text in drawer.'); } String get starterAppGenericButton { - return Intl.message('BUTTON', + return Intl.message(r'BUTTON', locale: _localeName, name: 'starterAppGenericButton', desc: r'Generic placeholder for button.'); } String get starterAppGenericHeadline { - return Intl.message('Headline', + return Intl.message(r'Headline', locale: _localeName, name: 'starterAppGenericHeadline', desc: r'Generic placeholder for headline in drawer.'); } String get starterAppGenericSubtitle { - return Intl.message('Subtitle', + return Intl.message(r'Subtitle', locale: _localeName, name: 'starterAppGenericSubtitle', desc: r'Generic placeholder for subtitle in drawer.'); } String get starterAppGenericTitle { - return Intl.message('Title', + return Intl.message(r'Title', locale: _localeName, name: 'starterAppGenericTitle', desc: r'Generic placeholder for title in app bar.'); } String get starterAppTitle { - return Intl.message('Starter app', + return Intl.message(r'Starter app', locale: _localeName, name: 'starterAppTitle', desc: r'The title and name for the starter app.'); } String get starterAppTooltipAdd { - return Intl.message('Add', + return Intl.message(r'Add', locale: _localeName, name: 'starterAppTooltipAdd', desc: r'Tooltip on add icon.'); } String get starterAppTooltipFavorite { - return Intl.message('Favorite', + return Intl.message(r'Favorite', locale: _localeName, name: 'starterAppTooltipFavorite', desc: r'Tooltip on favorite icon.'); } String get starterAppTooltipSearch { - return Intl.message('Search', + return Intl.message(r'Search', locale: _localeName, name: 'starterAppTooltipSearch', desc: r'Tooltip on search icon.'); } String get starterAppTooltipShare { - return Intl.message('Share', + return Intl.message(r'Share', locale: _localeName, name: 'starterAppTooltipShare', desc: r'Tooltip on share icon.'); diff --git a/gallery/gallery/lib/l10n/intl_en_US.arb b/gallery/gallery/lib/l10n/intl_en_US.arb index e5db8fb6908..2991c8b5749 100644 --- a/gallery/gallery/lib/l10n/intl_en_US.arb +++ b/gallery/gallery/lib/l10n/intl_en_US.arb @@ -1261,6 +1261,26 @@ "@demoTypographyDescription": { "description": "Description for the typography demo. Material Design should remain capitalized." }, + "demo2dTransformationsTitle": "2D transformations", + "@demo2dTransformationsTitle": { + "description": "Title for the 2D transformations demo." + }, + "demo2dTransformationsSubtitle": "Pan, zoom, rotate", + "@demo2dTransformationsSubtitle": { + "description": "Subtitle for the 2D transformations demo." + }, + "demo2dTransformationsDescription": "Tap to edit tiles, and use gestures to move around the scene. Drag to pan, pinch to zoom, rotate with two fingers. Press the reset button to return to the starting orientation.", + "@demo2dTransformationsDescription": { + "description": "Description for the 2D transformations demo." + }, + "demo2dTransformationsResetTooltip": "Reset transformations", + "@demo2dTransformationsResetTooltip": { + "description": "Tooltip for a button to reset the transformations (scale, translation) for the 2D transformations demo." + }, + "demo2dTransformationsEditTooltip": "Edit tile", + "@demo2dTransformationsEditTooltip": { + "description": "Tooltip for a button to edit a tile." + }, "buttonText": "BUTTON", "@buttonText": { "description": "Text for a generic button." diff --git a/gallery/gallery/lib/l10n/intl_en_US.xml b/gallery/gallery/lib/l10n/intl_en_US.xml index 7626c70fed9..32feea6ff4c 100644 --- a/gallery/gallery/lib/l10n/intl_en_US.xml +++ b/gallery/gallery/lib/l10n/intl_en_US.xml @@ -1189,6 +1189,26 @@ name="demoTypographyDescription" description="Description for the typography demo. Material Design should remain capitalized." >Definitions for the various typographical styles found in Material Design. + 2D transformations + Pan, zoom, rotate + Tap to edit tiles, and use gestures to move around the scene. Drag to pan, pinch to zoom, rotate with two fingers. Press the reset button to return to the starting orientation. + Reset transformations + Edit tile extends State> _handleExpansion(); final theme = Theme.of(context); - final optionsList = []; + final optionWidgetsList = []; widget.options.forEach( - (optionValue, optionDisplay) => optionsList.add( + (optionValue, optionDisplay) => optionWidgetsList.add( RadioListTile( value: optionValue, title: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ Text( optionDisplay.title, style: theme.textTheme.body2.copyWith( @@ -239,8 +239,8 @@ class _SettingsListItemState extends State> child: ListView.builder( shrinkWrap: true, physics: NeverScrollableScrollPhysics(), - itemBuilder: (context, index) => optionsList[index], - itemCount: optionsList.length, + itemBuilder: (context, index) => optionWidgetsList[index], + itemCount: optionWidgetsList.length, ), ), ); diff --git a/gallery/gallery/lib/themes/gallery_theme_data.dart b/gallery/gallery/lib/themes/gallery_theme_data.dart index 34e0f6f0246..5ffb48c5cef 100644 --- a/gallery/gallery/lib/themes/gallery_theme_data.dart +++ b/gallery/gallery/lib/themes/gallery_theme_data.dart @@ -12,8 +12,8 @@ class GalleryThemeData { static Color _darkFocusColor = Colors.white.withOpacity(0.12); static ThemeData lightThemeData = - themeData(_lightColorScheme, _lightFocusColor); - static ThemeData darkThemeData = themeData(_darkColorScheme, _darkFocusColor); + themeData(lightColorScheme, _lightFocusColor); + static ThemeData darkThemeData = themeData(darkColorScheme, _darkFocusColor); static ThemeData themeData(ColorScheme colorScheme, Color focusColor) { return ThemeData( @@ -43,7 +43,7 @@ class GalleryThemeData { ); } - static ColorScheme _lightColorScheme = ColorScheme( + static ColorScheme lightColorScheme = ColorScheme( primary: const Color(0xFFB93C5D), primaryVariant: const Color(0xFF117378), secondary: const Color(0xFFEFF3F3), @@ -59,7 +59,7 @@ class GalleryThemeData { brightness: Brightness.light, ); - static ColorScheme _darkColorScheme = ColorScheme( + static ColorScheme darkColorScheme = ColorScheme( primary: const Color(0xFFFF8383), primaryVariant: const Color(0xFF1CDEC9), secondary: const Color(0xFF4D1F7C),