12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import 'package:compdfkit_flutter/core/cpdf_view_ctrl.dart';
- import 'package:flutter/material.dart';
- import '../dialog/cpdf_base_input_dialog_widget.dart';
- /// Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- ///
- /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- /// This notice may not be removed from this file.
- class CPDFPageIndicator extends StatefulWidget {
- CPDFViewCtrl ctrl;
- CPDFPageIndicator({required this.ctrl, super.key});
- @override
- State<CPDFPageIndicator> createState() => _CPDFPageIndicatorState();
- }
- class _CPDFPageIndicatorState extends State<CPDFPageIndicator> {
- int _currentPage = 0;
- int _pageCount = 0;
- bool _enterTextIsEmpty = true;
- @override
- void initState() {
- super.initState();
- _initDocumentData();
- setReaderViewCallback();
- }
- void _initDocumentData() async {
- int pageCount = await widget.ctrl.document.getPageCount();
- setState(() {
- _pageCount = pageCount;
- });
- }
- @override
- Widget build(BuildContext context) {
- var textStyle = const TextStyle(color: Colors.white);
- return GestureDetector(
- child: Container(
- decoration: const BoxDecoration(
- color: Color(0xCC000000),
- borderRadius: BorderRadius.all(Radius.circular(2))),
- padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- mainAxisSize: MainAxisSize.min,
- children: [
- Text((_currentPage + 1).toString(), style: textStyle),
- Text('/', style: textStyle),
- Text(_pageCount.toString(), style: textStyle)
- ],
- ),
- ),
- onTap: () async {
- int? jumpPageIndex = await showDialog<int?>(
- context: context,
- builder: (BuildContext context) {
- return CPDFPageNavigationWidget(
- pageCount: _pageCount,
- hintText: 'Page (1/$_pageCount)',
- );
- });
- if (jumpPageIndex != null) {
- widget.ctrl.setDisplayPageIndex(jumpPageIndex);
- }
- },
- );
- }
- void setReaderViewCallback() {
- widget.ctrl.setReaderViewCallback(
- onMoveToChild: (pageIndex) {
- setState(() {
- _currentPage = pageIndex;
- });
- },
- onScrollEnd: () {},
- onRecordLastJumpPageNum: (pageIndex) {});
- }
- }
|