setting_pdf_page_turning_widget.dart 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import 'package:flutter/material.dart';
  2. import 'package:kmpdfkit_demo/widgets/contains.dart';
  3. import 'package:kmpdfkit_demo/widgets/events.dart';
  4. /// setting_pdf_page_turning_widget.dart
  5. ///
  6. /// Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
  7. ///
  8. /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  9. /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  10. /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  11. /// This notice may not be removed from this file.
  12. class PDFPageTurningWidget extends StatefulWidget {
  13. const PDFPageTurningWidget({Key? key}) : super(key: key);
  14. @override
  15. State<PDFPageTurningWidget> createState() => _PDFPageTurningWidgetState();
  16. }
  17. class _PDFPageTurningWidgetState extends State<PDFPageTurningWidget> {
  18. bool _isVertical = true;
  19. bool _isContinue = true;
  20. bool _isDoublePage = false;
  21. bool _coverPageMode = false;
  22. bool _isCropPageMode = false;
  23. @override
  24. void initState() {
  25. super.initState();
  26. initPageTurning();
  27. }
  28. @override
  29. Widget build(BuildContext context) {
  30. return Column(
  31. children: [
  32. item('Vertical', _isVertical, (value) async {
  33. setScrollDirection(value ? ScrollDirection.vertical : ScrollDirection.horizontal).then((value){
  34. setState(() {
  35. _isVertical = value;
  36. });
  37. });
  38. }),
  39. item('Continue', _isContinue, (value) {
  40. setIsContinueMode(value).then((value) {
  41. setState(() {
  42. _isContinue = value;
  43. });
  44. });
  45. }),
  46. item('Double page', _isDoublePage, (value) async {
  47. setPageMode(value).then((value) {
  48. setState(() {
  49. _isDoublePage = value;
  50. });
  51. });
  52. }),
  53. item('Cover page', _coverPageMode, (value) {
  54. setIsCoverPageMode(value).then((value){
  55. setState(() {
  56. _coverPageMode = value;
  57. });
  58. });
  59. }),
  60. item('Crop page', _isCropPageMode, (value) {
  61. setIsCropPageMode(value).then((value){
  62. setState(() {
  63. _isCropPageMode = value;
  64. });
  65. });
  66. }),
  67. ],
  68. );
  69. }
  70. Widget item(String title, bool value, ValueChanged<bool> callback) {
  71. return Container(
  72. padding: const EdgeInsets.symmetric(horizontal: 8),
  73. height: 50,
  74. child: Row(
  75. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  76. children: [
  77. Text(
  78. title,
  79. style: const TextStyle(fontSize: 16),
  80. ),
  81. Switch(value: value, onChanged: callback)
  82. ],
  83. ),
  84. );
  85. }
  86. void initPageTurning() async {
  87. bool isVertical = await scrollDirectionIsVerticalMode();
  88. setState(() {
  89. _isVertical = isVertical;
  90. });
  91. bool doublePage = await isDoublePage();
  92. bool isContinue = await isContinueMode();
  93. bool isCoverMode = await isCoverPageMode();
  94. bool isCropMode = await isCropPageMode();
  95. setState(() {
  96. _isDoublePage = doublePage;
  97. _isContinue = isContinue;
  98. _coverPageMode = isCoverMode;
  99. _isCropPageMode = isCropMode;
  100. });
  101. }
  102. }