From 7da07c6dcd6cf4b96d4246bab4bbabb9193bc6c7 Mon Sep 17 00:00:00 2001 From: TechnicJelle <22576047+TechnicJelle@users.noreply.github.com> Date: Wed, 28 Aug 2024 04:30:53 +0200 Subject: [PATCH] Pixel Code font --- assets/fonts/PixelCode-ExtraLight.otf | Bin 0 -> 76668 bytes assets/fonts/PixelCode-LICENSE.txt | 93 ++++++++++++++++++++++++++ lib/config_editor.dart | 3 +- lib/control_panel.dart | 3 +- lib/utils.dart | 4 ++ pubspec.yaml | 16 ++--- 6 files changed, 106 insertions(+), 13 deletions(-) create mode 100644 assets/fonts/PixelCode-ExtraLight.otf create mode 100644 assets/fonts/PixelCode-LICENSE.txt diff --git a/assets/fonts/PixelCode-ExtraLight.otf b/assets/fonts/PixelCode-ExtraLight.otf new file mode 100644 index 0000000000000000000000000000000000000000..a689e474804584f79aee1c5ebf0cde101321dfeb GIT binary patch literal 76668 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 MA>S|vhu8G~04d~7cK`qY literal 0 HcmV?d00001 diff --git a/assets/fonts/PixelCode-LICENSE.txt b/assets/fonts/PixelCode-LICENSE.txt new file mode 100644 index 0000000..cb90aaf --- /dev/null +++ b/assets/fonts/PixelCode-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright (c) 2022, Qwerasd + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/lib/config_editor.dart b/lib/config_editor.dart index cff1ece..8dd7c9c 100644 --- a/lib/config_editor.dart +++ b/lib/config_editor.dart @@ -6,6 +6,7 @@ import "package:flutter_code_editor/flutter_code_editor.dart"; import "package:flutter_riverpod/flutter_riverpod.dart"; import "dual_pane.dart"; +import "utils.dart"; class ConfigEditor extends ConsumerStatefulWidget { final File openConfig; @@ -66,7 +67,7 @@ class _ConfigEditorState extends ConsumerState { return SingleChildScrollView( controller: vScrollController, child: CodeField( - textStyle: const TextStyle(fontFamily: "monospace"), + textStyle: pixelCode, controller: codeController, minLines: null, maxLines: null, diff --git a/lib/control_panel.dart b/lib/control_panel.dart index 4782204..ebfcd00 100644 --- a/lib/control_panel.dart +++ b/lib/control_panel.dart @@ -7,6 +7,7 @@ import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:url_launcher/url_launcher.dart"; import "main.dart"; +import "utils.dart"; class ControlPanel extends ConsumerStatefulWidget { const ControlPanel({super.key}); @@ -114,7 +115,7 @@ class _ControlPanelState extends ConsumerState { borderRadius: BorderRadius.all(Radius.circular(8)), ), child: DefaultTextStyle( - style: const TextStyle(fontFamily: "monospace", color: Colors.white), + style: pixelCode, child: FlutterListView( reverse: true, delegate: FlutterListViewDelegate( diff --git a/lib/utils.dart b/lib/utils.dart index 5d92948..e1daff3 100644 --- a/lib/utils.dart +++ b/lib/utils.dart @@ -1,5 +1,9 @@ +import "package:flutter/material.dart"; + extension StringExtension on String { String capitalize() { return "${this[0].toUpperCase()}${substring(1).toLowerCase()}"; } } + +const TextStyle pixelCode = TextStyle(fontFamily: "PixelCode", fontSize: 14, height: 1.2); diff --git a/pubspec.yaml b/pubspec.yaml index 231ea06..089272e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,17 +76,11 @@ flutter: # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 + fonts: + - family: PixelCode + fonts: + - asset: assets/fonts/PixelCode-ExtraLight.otf + # # For details regarding fonts from package dependencies, # see https://flutter.dev/to/font-from-package