import 'package:flutter/material.dart'; import 'package:jade_gui/Keymaps/keymaps.dart'; import 'package:jade_gui/classes/keymap.dart'; Keymap chosenLayout = keymaps[0]; String chosenVariant = "none"; String getChosenVariant() { return chosenVariant; } String getChosenLayout() { return chosenLayout.backLayout; } Widget variantTemplate(variant, chosenLayout, nextPage, writeToLog) { return Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Container( padding: const EdgeInsets.all(2), decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), border: Border.all(color: Colors.black45), color: const Color.fromARGB(255, 30, 30, 30), ), child: ElevatedButton( onPressed: () { chosenVariant = variant; writeToLog("Chosen variant: $chosenVariant"); nextPage(); }, style: TextButton.styleFrom( primary: Colors.white, backgroundColor: const Color.fromARGB(0, 169, 0, 255), shadowColor: const Color.fromARGB(0, 169, 0, 255), padding: const EdgeInsets.all(10), ), child: Text( variant, style: const TextStyle( fontWeight: FontWeight.bold, ), ), ), ), const SizedBox(height: 10), ], ); } Widget layoutTemplate(keymap, setChosenLayout, writeToLog) { return Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Container( padding: const EdgeInsets.all(2), decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), border: Border.all(color: Colors.black45), color: const Color.fromARGB(255, 30, 30, 30), ), child: ElevatedButton( onPressed: () { setChosenLayout(keymap); writeToLog("Chosen layout: ${keymap.backLayout}"); }, style: TextButton.styleFrom( primary: Colors.white, backgroundColor: const Color.fromARGB(255, 30, 30, 30), shadowColor: const Color.fromARGB(100, 30, 30, 30), padding: const EdgeInsets.all(10), ), child: Text( keymap.layout, style: const TextStyle( fontWeight: FontWeight.bold, ), ), ), ), const SizedBox(height: 10), ], ); } Widget keyboard(nextPage, showVariant, choseLayout, setChosenLayout, chosenLayout, writeToLog) { return Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Text( 'Please select a keyboard layout', style: TextStyle( fontSize: 50, fontWeight: FontWeight.bold, color: Color.fromARGB(255, 169, 0, 255)), ), const SizedBox(height: 20), Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ const SizedBox(width: 40), Expanded( child: Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), border: Border.all(color: Colors.black), color: const Color.fromARGB(255, 30, 30, 30), boxShadow: const [ BoxShadow( color: Colors.black, blurRadius: 2, offset: Offset(-2, 3), ), ], ), child: SingleChildScrollView( primary: false, child: Column( children: keymaps .map((keymap) => layoutTemplate(keymap, setChosenLayout, writeToLog)) .toList(), ), ), ), ), const SizedBox(width: 50), Expanded( child: Container( padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), border: Border.all(color: Colors.black), color: const Color.fromARGB(255, 30, 30, 30), boxShadow: const [ BoxShadow( color: Colors.black, blurRadius: 2, offset: Offset(-2, 3), ), ], ), child: SingleChildScrollView( primary: false, child: Column( children: chosenLayout.variant .map((map) => variantTemplate( map, chosenLayout, nextPage, writeToLog)) .toList(), ), ), ), ), const SizedBox(width: 40), ], ), ), const SizedBox(height: 20), ], ); }