|
|
@ -4,10 +4,10 @@ import '../../../../flutter_quill.dart'; |
|
|
|
|
|
|
|
|
|
|
|
/// The [T] is the options for the button |
|
|
|
/// The [T] is the options for the button |
|
|
|
/// The [E] is the extra options for the button |
|
|
|
/// The [E] is the extra options for the button |
|
|
|
abstract class QuillToolbarBaseValueButton< |
|
|
|
abstract class QuillToolbarBaseButton< |
|
|
|
T extends QuillToolbarBaseButtonOptions<T, E>, |
|
|
|
T extends QuillToolbarBaseButtonOptions<T, E>, |
|
|
|
E extends QuillToolbarBaseButtonExtraOptions> extends StatefulWidget { |
|
|
|
E extends QuillToolbarBaseButtonExtraOptions> extends StatefulWidget { |
|
|
|
const QuillToolbarBaseValueButton( |
|
|
|
const QuillToolbarBaseButton( |
|
|
|
{required this.controller, required this.options, super.key}); |
|
|
|
{required this.controller, required this.options, super.key}); |
|
|
|
|
|
|
|
|
|
|
|
final T options; |
|
|
|
final T options; |
|
|
@ -16,16 +16,46 @@ abstract class QuillToolbarBaseValueButton< |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// The [W] is the widget that creates this State |
|
|
|
/// The [W] is the widget that creates this State |
|
|
|
/// The [V] is the type of the currentValue |
|
|
|
abstract class QuillToolbarCommonButtonState< |
|
|
|
abstract class QuillToolbarBaseValueButtonState< |
|
|
|
W extends QuillToolbarBaseButton<T, E>, |
|
|
|
W extends QuillToolbarBaseValueButton<T, E>, |
|
|
|
|
|
|
|
T extends QuillToolbarBaseButtonOptions<T, E>, |
|
|
|
T extends QuillToolbarBaseButtonOptions<T, E>, |
|
|
|
E extends QuillToolbarBaseButtonExtraOptions, |
|
|
|
E extends QuillToolbarBaseButtonExtraOptions> extends State<W> { |
|
|
|
V> extends State<W> { |
|
|
|
|
|
|
|
T get options => widget.options; |
|
|
|
T get options => widget.options; |
|
|
|
|
|
|
|
|
|
|
|
QuillController get controller => widget.controller; |
|
|
|
QuillController get controller => widget.controller; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QuillToolbarBaseButtonOptions? get baseButtonExtraOptions => |
|
|
|
|
|
|
|
context.quillToolbarBaseButtonOptions; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String get defaultTooltip; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String get tooltip => |
|
|
|
|
|
|
|
options.tooltip ?? baseButtonExtraOptions?.tooltip ?? defaultTooltip; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double get iconSize => |
|
|
|
|
|
|
|
options.iconSize ?? baseButtonExtraOptions?.iconSize ?? kDefaultIconSize; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double get iconButtonFactor => |
|
|
|
|
|
|
|
options.iconButtonFactor ?? |
|
|
|
|
|
|
|
baseButtonExtraOptions?.iconButtonFactor ?? |
|
|
|
|
|
|
|
kDefaultIconButtonFactor; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QuillIconTheme? get iconTheme => |
|
|
|
|
|
|
|
options.iconTheme ?? baseButtonExtraOptions?.iconTheme; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VoidCallback? get afterButtonPressed => |
|
|
|
|
|
|
|
options.afterButtonPressed ?? |
|
|
|
|
|
|
|
baseButtonExtraOptions?.afterButtonPressed ?? |
|
|
|
|
|
|
|
() => controller.editorFocusNode?.requestFocus(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// The [W] is the widget that creates this State |
|
|
|
|
|
|
|
/// The [V] is the type of the currentValue |
|
|
|
|
|
|
|
abstract class QuillToolbarBaseButtonState< |
|
|
|
|
|
|
|
W extends QuillToolbarBaseButton<T, E>, |
|
|
|
|
|
|
|
T extends QuillToolbarBaseButtonOptions<T, E>, |
|
|
|
|
|
|
|
E extends QuillToolbarBaseButtonExtraOptions, |
|
|
|
|
|
|
|
V> extends QuillToolbarCommonButtonState<W, T, E> { |
|
|
|
V? _currentValue; |
|
|
|
V? _currentValue; |
|
|
|
V get currentValue => _currentValue!; |
|
|
|
V get currentValue => _currentValue!; |
|
|
|
set currentValue(V value) => _currentValue = value; |
|
|
|
set currentValue(V value) => _currentValue = value; |
|
|
@ -72,46 +102,13 @@ abstract class QuillToolbarBaseValueButtonState< |
|
|
|
/// Extra listeners allow a subclass to listen to an external event that can affect its currentValue |
|
|
|
/// Extra listeners allow a subclass to listen to an external event that can affect its currentValue |
|
|
|
void addExtraListener() {} |
|
|
|
void addExtraListener() {} |
|
|
|
void removeExtraListener(covariant W oldWidget) {} |
|
|
|
void removeExtraListener(covariant W oldWidget) {} |
|
|
|
|
|
|
|
|
|
|
|
String get defaultTooltip; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String get tooltip { |
|
|
|
|
|
|
|
return options.tooltip ?? |
|
|
|
|
|
|
|
context.quillToolbarBaseButtonOptions?.tooltip ?? |
|
|
|
|
|
|
|
defaultTooltip; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double get iconSize { |
|
|
|
|
|
|
|
final baseFontSize = baseButtonExtraOptions?.iconSize; |
|
|
|
|
|
|
|
final iconSize = options.iconSize; |
|
|
|
|
|
|
|
return iconSize ?? baseFontSize ?? kDefaultIconSize; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double get iconButtonFactor { |
|
|
|
|
|
|
|
final baseIconFactor = baseButtonExtraOptions?.iconButtonFactor; |
|
|
|
|
|
|
|
final iconButtonFactor = options.iconButtonFactor; |
|
|
|
|
|
|
|
return iconButtonFactor ?? baseIconFactor ?? kDefaultIconButtonFactor; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QuillIconTheme? get iconTheme { |
|
|
|
|
|
|
|
return options.iconTheme ?? baseButtonExtraOptions?.iconTheme; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QuillToolbarBaseButtonOptions? get baseButtonExtraOptions { |
|
|
|
|
|
|
|
return context.quillToolbarBaseButtonOptions; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VoidCallback? get afterButtonPressed { |
|
|
|
|
|
|
|
return options.afterButtonPressed ?? |
|
|
|
|
|
|
|
baseButtonExtraOptions?.afterButtonPressed; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
typedef QuillToolbarToggleStyleBaseButton = QuillToolbarBaseValueButton< |
|
|
|
typedef QuillToolbarToggleStyleBaseButton = QuillToolbarBaseButton< |
|
|
|
QuillToolbarToggleStyleButtonOptions, |
|
|
|
QuillToolbarToggleStyleButtonOptions, |
|
|
|
QuillToolbarToggleStyleButtonExtraOptions>; |
|
|
|
QuillToolbarToggleStyleButtonExtraOptions>; |
|
|
|
|
|
|
|
|
|
|
|
typedef QuillToolbarToggleStyleBaseButtonState< |
|
|
|
typedef QuillToolbarToggleStyleBaseButtonState< |
|
|
|
W extends QuillToolbarToggleStyleBaseButton> |
|
|
|
W extends QuillToolbarToggleStyleBaseButton> |
|
|
|
= QuillToolbarBaseValueButtonState<W, QuillToolbarToggleStyleButtonOptions, |
|
|
|
= QuillToolbarBaseButtonState<W, QuillToolbarToggleStyleButtonOptions, |
|
|
|
QuillToolbarToggleStyleButtonExtraOptions, bool>; |
|
|
|
QuillToolbarToggleStyleButtonExtraOptions, bool>; |
|
|
|