page_portrait.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import 'package:flutter/material.dart';
  2. import 'package:tetris/generated/i18n.dart';
  3. import 'package:tetris/income/donation_dialog.dart';
  4. import 'package:tetris/main.dart';
  5. import 'package:tetris/model/config.dart';
  6. import 'package:tetris/panel/controller.dart';
  7. import 'package:tetris/panel/screen.dart';
  8. part 'page_land.dart';
  9. class PagePortrait extends StatelessWidget {
  10. @override
  11. Widget build(BuildContext context) {
  12. final size = MediaQuery.of(context).size;
  13. final screenW = size.width * 0.8;
  14. return SizedBox.expand(
  15. child: Container(
  16. color: BACKGROUND_COLOR,
  17. child: Padding(
  18. padding: MediaQuery.of(context).padding,
  19. child: Column(
  20. children: <Widget>[
  21. Row(
  22. children: <Widget>[
  23. Spacer(),
  24. FlatButton(
  25. onPressed: () {
  26. showDialog(
  27. context: context,
  28. builder: (context) => DonationDialog());
  29. },
  30. child: Text(S.of(context).reward))
  31. ],
  32. ),
  33. Spacer(),
  34. _ScreenDecoration(child: Screen(width: screenW)),
  35. Spacer(flex: 2),
  36. GameController(),
  37. ],
  38. ),
  39. ),
  40. ),
  41. );
  42. }
  43. }
  44. class _ScreenDecoration extends StatelessWidget {
  45. final Widget child;
  46. const _ScreenDecoration({Key key, @required this.child}) : super(key: key);
  47. @override
  48. Widget build(BuildContext context) {
  49. return Container(
  50. decoration: BoxDecoration(
  51. border: Border(
  52. top: BorderSide(
  53. color: const Color(0xFF987f0f), width: SCREEN_BORDER_WIDTH),
  54. left: BorderSide(
  55. color: const Color(0xFF987f0f), width: SCREEN_BORDER_WIDTH),
  56. right: BorderSide(
  57. color: const Color(0xFFfae36c), width: SCREEN_BORDER_WIDTH),
  58. bottom: BorderSide(
  59. color: const Color(0xFFfae36c), width: SCREEN_BORDER_WIDTH),
  60. ),
  61. ),
  62. child: Container(
  63. decoration: BoxDecoration(border: Border.all(color: Colors.black54)),
  64. child: Container(
  65. padding: const EdgeInsets.all(3),
  66. color: SCREEN_BACKGROUND,
  67. child: child,
  68. ),
  69. ),
  70. );
  71. }
  72. }