From d604d7c5292c49311ba62e1a23a68a7d76ff8cc1 Mon Sep 17 00:00:00 2001 From: axtlos Date: Sun, 20 Feb 2022 13:33:25 +0100 Subject: [PATCH] redo welcome screen --- assets/crystal-logo-minimal.png | Bin 0 -> 16096 bytes lib/functions/desktop.dart | 2 - lib/functions/keyboard.dart | 5 - lib/functions/users.dart | 2 +- lib/functions/welcome.dart | 168 ++++++++++++++++++++++---------- lib/main.dart | 21 +--- 6 files changed, 119 insertions(+), 79 deletions(-) create mode 100644 assets/crystal-logo-minimal.png diff --git a/assets/crystal-logo-minimal.png b/assets/crystal-logo-minimal.png new file mode 100644 index 0000000000000000000000000000000000000000..727f6372c3a4368a8e037ec3d64ed5704d07ff80 GIT binary patch literal 16096 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 (desktop) => desktopTemplate(desktop, setDesktop)) diff --git a/lib/functions/keyboard.dart b/lib/functions/keyboard.dart index 00eb81d..3f96904 100644 --- a/lib/functions/keyboard.dart +++ b/lib/functions/keyboard.dart @@ -120,8 +120,6 @@ Widget keyboard( child: SingleChildScrollView( primary: false, child: Column( - //mainAxisAlignment: MainAxisAlignment.spaceEvenly, - //crossAxisAlignment: CrossAxisAlignment.stretch, children: keymaps .map( (keymap) => layoutTemplate(keymap, setChosenLayout)) @@ -131,7 +129,6 @@ Widget keyboard( ), ), const SizedBox(width: 50), - //Expanded(child: layouts()), Expanded( child: Container( padding: const EdgeInsets.all(10), @@ -150,8 +147,6 @@ Widget keyboard( child: SingleChildScrollView( primary: false, child: Column( - //mainAxisAlignment: MainAxisAlignment.spaceEvenly, - //crossAxisAlignment: CrossAxisAlignment.stretch, children: chosenLayout.variant .map((map) => variantTemplate(map, chosenLayout, nextPage)) diff --git a/lib/functions/users.dart b/lib/functions/users.dart index 007aa2a..7280bc2 100644 --- a/lib/functions/users.dart +++ b/lib/functions/users.dart @@ -56,7 +56,7 @@ Widget users( mainAxisAlignment: MainAxisAlignment.spaceAround, crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(width: 10), + const SizedBox(width: 20), SizedBox( width: 600, child: Container( diff --git a/lib/functions/welcome.dart b/lib/functions/welcome.dart index 7ac456e..70513c5 100644 --- a/lib/functions/welcome.dart +++ b/lib/functions/welcome.dart @@ -1,71 +1,137 @@ import 'package:flutter/material.dart'; +import 'dart:io'; Widget welcome(next) { return Container( - decoration: const BoxDecoration( - image: DecorationImage( - fit: BoxFit.cover, - image: AssetImage('assets/welcome-bg-alt.png'), - ), - ), + //decoration: const BoxDecoration( + // image: DecorationImage( + // fit: BoxFit.cover, + // image: AssetImage('assets/welcome-bg-alt.png'), + // ), + //), child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(height: 20), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: const [ - Text( - 'Welcome to Jade', - style: TextStyle( - fontSize: 50, - fontWeight: FontWeight.bold, - color: Color.fromARGB(255, 169, 0, 255)), - ), - ], + const SizedBox(height: 50), + const Text( + 'Welcome to Crystal Linux', + style: TextStyle( + fontSize: 30, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), ), - const SizedBox(height: 10), + const SizedBox(height: 20), Row( mainAxisAlignment: MainAxisAlignment.center, - children: const [ - Text( - 'Installing crystal made easy', - style: TextStyle( - fontSize: 40, - color: Color.fromARGB(255, 169, 0, 255), - ), - ), - ], - ), - Column( - mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Column( - children: [ - TextButton( - onPressed: () { - next(); - }, - child: const Text('Start'), - style: TextButton.styleFrom( - primary: Colors.white, - backgroundColor: const Color.fromARGB(255, 169, 0, 255), - minimumSize: const Size(80, 50), - padding: const EdgeInsets.all(10), + ElevatedButton( + style: TextButton.styleFrom( + primary: const Color.fromARGB(0, 23, 23, 23), + backgroundColor: const Color.fromARGB(0, 23, 23, 23), + elevation: 0, + padding: EdgeInsets.zero, + ), + onPressed: () { + exit(0); + }, + child: Container( + width: 500, + height: 500, + 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: Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: const [ + SizedBox(height: 20), + Text("Try Crystal Linux without installing", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white)), + SizedBox(height: 5), + Image( + image: AssetImage( + 'assets/crystal-logo-minimal.png', + ), + height: 400, + fit: BoxFit.scaleDown, ), + ], + ), + ), + ), + ), + const SizedBox(width: 20), + ElevatedButton( + style: TextButton.styleFrom( + primary: const Color.fromARGB(0, 23, 23, 23), + backgroundColor: const Color.fromARGB(0, 23, 23, 23), + elevation: 0, + padding: EdgeInsets.zero, + ), + onPressed: next, + child: Container( + width: 500, + height: 500, + 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), ), - const SizedBox(height: 10), ], ), - const SizedBox(width: 30), - ], + child: Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: const [ + SizedBox(height: 20), + Text("Start the installation", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white)), + SizedBox(height: 5), + Image( + image: AssetImage( + 'assets/jade_logo.png', + ), + height: 400, + fit: BoxFit.scaleDown, + ), + ], + ), + ), + ), ), - const SizedBox(height: 7) ], ), + const SizedBox(height: 20), + const Text( + "Starting Crystal linux without installing will not change anything on your computer,", + style: TextStyle(fontSize: 20, color: Colors.white)), + const Text( + "it's recommended to try that first to see if everything works", + style: TextStyle(fontSize: 20, color: Colors.white)) ], ), ); diff --git a/lib/main.dart b/lib/main.dart index 07cc933..fe7fb7f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -230,16 +230,8 @@ class _JadeguiState extends State { } Widget condition() { - // other logic - // Declare a widget variable, - // it will be assigned later according - // to the condition Widget widget; - // Using switch statement to display desired - // widget if any certain condition is met - // You are free to use any condition - // For simplicity I have used boolean contition switch (_selectedIndex) { case 0: widget = welcome(() { @@ -370,17 +362,6 @@ class _JadeguiState extends State { }, ); break; - /*case 5: - print("Desktop: ${currDesktop.name}"); - widget = const Text( - 'Showing Desktop screen', - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, - color: Color.fromARGB(255, 169, 0, 255), - ), - ); - break;*/ case 5: widget = const Text( 'Showing Misc screen', @@ -423,7 +404,7 @@ class _JadeguiState extends State { break; default: widget = const Text( - 'You should not see this, report this at git.tar.black/crystal/jade_gui', + 'You should not see this, report this at https://git.tar.black/crystal/jade_gui', style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold,