123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /// convert_html_options_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.
- import 'package:flutter/material.dart';
- import 'package:kmpdfkit_conversion_flutter/models/options/convert_html_options.dart';
- import 'package:provider/provider.dart';
- import '../../states/convert_options_provider.dart';
- class ConvertHtmlOptionsWidget extends StatefulWidget {
- const ConvertHtmlOptionsWidget({Key? key}) : super(key: key);
- @override
- State<ConvertHtmlOptionsWidget> createState() =>
- _ConvertHtmlOptionsWidgetState();
- }
- class _ConvertHtmlOptionsWidgetState extends State<ConvertHtmlOptionsWidget> {
- @override
- Widget build(BuildContext context) {
- bool containImages = context.select<ConvertOptionsProvider, bool>(
- (value) => value.htmlOptions.containImages);
- bool containAnnotations = context.select<ConvertOptionsProvider, bool>(
- (value) => value.htmlOptions.containAnnotations);
- return Padding(
- padding: const EdgeInsets.all(8),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text('ContainImages'),
- Switch(
- value: containImages,
- onChanged: (value) {
- context
- .read<ConvertOptionsProvider>()
- .changeHtmlOptions(containImages: value);
- })
- ],
- ),
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text('ContainAnnotations'),
- Switch(
- value: containAnnotations,
- onChanged: (value) {
- context
- .read<ConvertOptionsProvider>()
- .changeHtmlOptions(containAnnotations: value);
- })
- ],
- ),
- htmlPageOptionsItem((value) {
- context
- .read<ConvertOptionsProvider>()
- .changeHtmlOptions(htmlPageOptions: value);
- }),
- ],
- ));
- }
- Widget htmlPageOptionsItem(ValueChanged<HtmlPageOptions> onChanged) {
- HtmlPageOptions contentOptions =
- context.select<ConvertOptionsProvider, HtmlPageOptions>(
- (value) => value.htmlOptions.htmlPageOptions);
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- const Text('Page Options:'),
- _htmlPageOptionsItem(
- contentOptions, HtmlPageOptions.singlePage, onChanged),
- _htmlPageOptionsItem(contentOptions,
- HtmlPageOptions.singlePageNavigationByBookmark, onChanged),
- _htmlPageOptionsItem(
- contentOptions, HtmlPageOptions.multiplePages, onChanged),
- _htmlPageOptionsItem(contentOptions,
- HtmlPageOptions.multiplePagesSplitByBookmarks, onChanged),
- ],
- );
- }
- Widget _htmlPageOptionsItem(HtmlPageOptions currentOptions,
- HtmlPageOptions options, ValueChanged<HtmlPageOptions> onChanged) {
- return CheckboxListTile(
- controlAffinity: ListTileControlAffinity.leading,
- title: Text(options.name),
- value: currentOptions == options,
- onChanged: (value) {
- onChanged(options);
- });
- }
- }
|