import 'dart:io'; import 'package:graphs/curve_painter.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:graphs/src/graph.dart'; class DrawingPage extends StatefulWidget { const DrawingPage({Key? key}) : super(key: key); @override State createState() => _DrawingPageState(); } class _DrawingPageState extends State { Graphs data = Graphs("Data"); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text("Graph", style: TextStyle(fontSize: 35, color: Colors.white)), toolbarHeight: 110, // Set this height flexibleSpace: Container( color: Colors.blue, child: Column(children: [ /*Row(children: const [ SizedBox(width: 25), Text("Graph", style: TextStyle(fontSize: 23, color: Colors.white)) ]),*/ const SizedBox(height: 5), Container( width: MediaQuery.of(context).size.width / 3 + 30, height: 40, margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), child: const TextField( textAlign: TextAlign.center, decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), filled: true, fillColor: Colors.white, prefixIcon: Icon(Icons.fiber_manual_record_outlined, color: Colors.black), border: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(40))), hintStyle: TextStyle(color: Colors.black38), hintText: "Input dot number"), ), ), Container( width: MediaQuery.of(context).size.width / 3 + 30, height: 40, margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), child: const TextField( textAlign: TextAlign.center, decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), filled: true, fillColor: Colors.white, prefixIcon: Icon(Icons.arrow_right_alt_outlined, color: Colors.black), border: OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(40))), hintStyle: TextStyle(color: Colors.black38), hintText: "Input path length"), ), ), ]), ), actions: [ Column( children: [ addVerticalSpace(10), createButton("\nAdd dot\n"), addVerticalSpace(3), createButton("\nDel dot \n"), ], ), IconButton( onPressed: () => closeApp(), icon: const Icon(Icons.close), iconSize: 50, ), ]), body: CustomPaint( painter: CurvePainter(), child: const Center(), ), )); } ElevatedButton createButton(String txt) { return ElevatedButton( style: TextButton.styleFrom( primary: Colors.blue, ), onPressed: null, child: Text(txt, style: const TextStyle( fontSize: 15, color: Colors.white, height: 1, )), ); } SizedBox addVerticalSpace(double h) { return SizedBox(height: h); } void closeApp() { if (Platform.isWindows) { exit(0); } SystemChannels.platform.invokeMethod('SystemNavigator.pop'); } } class _Buttons extends StatelessWidget { const _Buttons({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container(); } }