mirror of
https://github.com/flutter/samples.git
synced 2026-03-25 13:51:35 +00:00
* add package:http dependency in dad_jokes * add package:http dependency in filipino_cuisine * don't build package:http demos until flutter/flutter#34858 is resolved * update gallery * update github_dataviz * update particle_background * don't build github_dataviz (uses package:http) * update slide_puzzle * update spinning_square * update timeflow * update vision_challenge * update charts * update dad_jokes * update filipino cuisine * ignore build output * update timeflow and vision_challenge * update slide_puzzle * don't commit build/ directory * move preview.png images to assets * fix path url join * update readme * update web/readme.md
72 lines
1.9 KiB
Dart
72 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'app_state.dart';
|
|
import 'shared_theme.dart';
|
|
import 'widgets/decoration_image_plus.dart';
|
|
|
|
class ThemeSeattle extends SharedTheme {
|
|
@override
|
|
String get name => 'Seattle';
|
|
|
|
ThemeSeattle(AppState proxy) : super(proxy);
|
|
|
|
@override
|
|
Color get puzzleThemeBackground => const Color.fromARGB(153, 90, 135, 170);
|
|
|
|
@override
|
|
Color get puzzleBackgroundColor => Colors.white70;
|
|
|
|
@override
|
|
Color get puzzleAccentColor => const Color(0xff000579f);
|
|
|
|
@override
|
|
RoundedRectangleBorder get puzzleBorder => const RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.all(
|
|
Radius.circular(1),
|
|
),
|
|
);
|
|
|
|
@override
|
|
EdgeInsetsGeometry get tilePadding =>
|
|
puzzle.solved ? const EdgeInsets.all(1) : const EdgeInsets.all(4);
|
|
|
|
@override
|
|
Widget tileButton(int i) {
|
|
if (i == puzzle.tileCount && !puzzle.solved) {
|
|
assert(puzzle.solved);
|
|
}
|
|
|
|
final decorationImage = DecorationImagePlus(
|
|
puzzleWidth: puzzle.width,
|
|
puzzleHeight: puzzle.height,
|
|
pieceIndex: i,
|
|
fit: BoxFit.cover,
|
|
image: const AssetImage('asset/seattle.jpg'));
|
|
|
|
final correctPosition = puzzle.isCorrectPosition(i);
|
|
final content = createInk(
|
|
puzzle.solved
|
|
? const Center()
|
|
: Container(
|
|
decoration: ShapeDecoration(
|
|
shape: const CircleBorder(),
|
|
color: correctPosition ? Colors.black38 : Colors.white54,
|
|
),
|
|
alignment: Alignment.center,
|
|
child: Text(
|
|
(i + 1).toString(),
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.normal,
|
|
color: correctPosition ? Colors.white : Colors.black,
|
|
fontSize: 42,
|
|
),
|
|
),
|
|
),
|
|
image: decorationImage,
|
|
padding: const EdgeInsets.all(32),
|
|
);
|
|
|
|
return createButton(i, content);
|
|
}
|
|
}
|