page_portrait.dart 2.2 KB

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