Use drawing controller
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_drawing_board/flutter_drawing_board.dart';
|
||||
import 'package:flutter_drawing_board/paint_contents.dart';
|
||||
import 'package:flutter_fullscreen/flutter_fullscreen.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:pdfrx/pdfrx.dart';
|
||||
@@ -41,10 +43,20 @@ class _SheetViewerPageState extends State<SheetViewerPage>
|
||||
int _currentPage = 1;
|
||||
int _totalPages = 1;
|
||||
bool _isPaintMode = false;
|
||||
late DrawingController _drawingController;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
// Initialize drawing controller with default configuration
|
||||
_drawingController = DrawingController(
|
||||
config: DrawConfig(
|
||||
contentType: SimpleLine,
|
||||
strokeWidth: 4.0,
|
||||
color: Colors.black,
|
||||
),
|
||||
maxHistorySteps: 100, // Limit undo/redo history (default: 100)
|
||||
);
|
||||
FullScreen.addListener(this);
|
||||
FullScreen.setFullScreen(widget.config.fullscreen);
|
||||
_documentLoaded = _loadPdf();
|
||||
@@ -52,6 +64,7 @@ class _SheetViewerPageState extends State<SheetViewerPage>
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_drawingController.dispose();
|
||||
FullScreen.removeListener(this);
|
||||
_document?.dispose();
|
||||
super.dispose();
|
||||
@@ -225,7 +238,10 @@ class _SheetViewerPageState extends State<SheetViewerPage>
|
||||
// Show paint mode layer when active
|
||||
Visibility(
|
||||
visible: _isPaintMode,
|
||||
child: PaintModeLayer(pageDisplay: pageDisplay),
|
||||
child: PaintModeLayer(
|
||||
pageDisplay: pageDisplay,
|
||||
drawingController: _drawingController,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user