Pārlūkot izejas kodu

Merge pull request #74 from jda258/keyboard_customizations

add configuration options for keyboard
xuty 4 gadi atpakaļ
vecāks
revīzija
56eb9a0b46
2 mainītis faili ar 32 papildinājumiem un 1 dzēšanām
  1. 17 1
      lib/frontend/input_listener.dart
  2. 15 0
      lib/frontend/terminal_view.dart

+ 17 - 1
lib/frontend/input_listener.dart

@@ -25,6 +25,11 @@ class InputListener extends StatefulWidget {
     this.listenKeyStroke = true,
     this.readOnly = false,
     this.initEditingState = TextEditingValue.empty,
+    this.inputType = TextInputType.text,
+    this.enableSuggestions = false,
+    this.inputAction = TextInputAction.done,
+    this.keyboardAppearance = Brightness.light,
+    this.autocorrect = false,
   });
 
   final Widget child;
@@ -37,6 +42,11 @@ class InputListener extends StatefulWidget {
   final bool listenKeyStroke;
   final bool readOnly;
   final TextEditingValue initEditingState;
+  final TextInputType inputType;
+  final bool enableSuggestions;
+  final TextInputAction inputAction;
+  final Brightness keyboardAppearance;
+  final bool autocorrect;
 
   @override
   InputListenerState createState() => InputListenerState();
@@ -162,7 +172,13 @@ class InputListenerState extends State<InputListener>
     if (_hasInputConnection) {
       _conn!.show();
     } else {
-      final config = TextInputConfiguration();
+      final config = TextInputConfiguration(
+        inputType: widget.inputType,
+        enableSuggestions: widget.enableSuggestions,
+        inputAction: widget.inputAction,
+        keyboardAppearance: widget.keyboardAppearance,
+        autocorrect: widget.autocorrect,
+      );
       final client = TerminalTextInputClient(onInput, onAction);
       _conn = TextInput.attach(client, config);
 

+ 15 - 0
lib/frontend/terminal_view.dart

@@ -28,6 +28,11 @@ class TerminalView extends StatefulWidget {
     FocusNode? focusNode,
     this.autofocus = false,
     ScrollController? scrollController,
+    this.inputType = TextInputType.text,
+    this.enableSuggestions = false,
+    this.inputAction = TextInputAction.done,
+    this.keyboardAppearance = Brightness.light,
+    this.autocorrect = false,
     InputBehavior? inputBehavior,
     this.scrollBehavior,
     this.padding = 0.0,
@@ -40,6 +45,11 @@ class TerminalView extends StatefulWidget {
   final FocusNode focusNode;
   final bool autofocus;
   final ScrollController scrollController;
+  final TextInputType inputType;
+  final bool enableSuggestions;
+  final TextInputAction inputAction;
+  final Brightness keyboardAppearance;
+  final bool autocorrect;
 
   final TerminalStyle style;
   final double opacity;
@@ -170,6 +180,11 @@ class _TerminalViewState extends State<TerminalView> {
       focusNode: widget.focusNode,
       autofocus: widget.autofocus,
       initEditingState: widget.inputBehavior.initEditingState,
+      inputType: widget.inputType,
+      enableSuggestions: widget.enableSuggestions,
+      inputAction: widget.inputAction,
+      keyboardAppearance: widget.keyboardAppearance,
+      autocorrect: widget.autocorrect,
       child: MouseRegion(
         cursor: SystemMouseCursors.text,
         child: LayoutBuilder(builder: (context, constraints) {