From 8bdaccf58f8ff9a768b051e3b9bdde0656357f1e Mon Sep 17 00:00:00 2001 From: sqshq Date: Sun, 17 Feb 2019 18:00:00 -0500 Subject: [PATCH] added asciibox component type --- asset/font/3d.flf | 924 ++++++++++++++ asset/font/flat.flf | 2227 ++++++++++++++++++++++++++++++++++ config.yml | 38 +- config/config.go | 22 +- config/default.go | 23 +- data/item.go | 2 +- data/sampler.go | 9 +- go.mod | 1 + go.sum | 2 + main.go | 9 +- widgets/asciibox/asciibox.go | 69 ++ widgets/layout.go | 2 +- widgets/menu.go | 14 +- widgets/runchart/legend.go | 6 +- 14 files changed, 3314 insertions(+), 34 deletions(-) create mode 100644 asset/font/3d.flf create mode 100644 asset/font/flat.flf create mode 100644 widgets/asciibox/asciibox.go diff --git a/asset/font/3d.flf b/asset/font/3d.flf new file mode 100644 index 0000000..2df4abe --- /dev/null +++ b/asset/font/3d.flf @@ -0,0 +1,924 @@ +flf2a$ 9 6 30 1 5 +larry3d.flf by Larry Gelberg (larryg@avs.com) +(stolen liberally from Juan Car's puffy.flf) +tweaked by Glenn Chappell +Version 1.2 2/24/94 + + $@ + $@ + $@ + $@ + $@ + $@ + $@ + $@ + @@ + __ @ +/\ \ @ +\ \ \ @ + \ \ \ @ + \ \_\ @ + \/\_\@ + \/_/@ + @ + @@ + __ __ @ +/\ \\ \ @ +\ \_\\_\ @ + \/_//_/$ @ + $ $ @ + $ $@ + @ + @ + @@ + __ __ @ + _\ \\ \__ @ +/\__ _ _\ @ +\/_L\ \\ \L_ @ + /\_ _ _\@ + \/_/\_\\_\/@ + \/_//_/ @ + @ + @@ + __ @ +/\ \_ @ +\/'__`\ @ +/\ \_\_\ @ +\ \____ \ @ + \/\ \_\ \@ + \ `\_ _/@ + `\_/\_\@ + \/_/@@ + __ __ @ +/\_\ / / @ +\/_/ / / @ + / / @ + / / __ @ + /_/ /\_\@ + /_/ \/_/@ + @ + @@ + ____ @ +/| _ \ @ +|/\ | @ + \// __`\/\ @ + /| \L> <_@ + | \_____/\/@ + \/____/\/ @ + @ + @@ + __ @ +/\ \ @ +\ \/$ @ + \/ $ @ + $ $ @ + $ $@ + @ + @ + @@ + _ @ + /' \ @ +/\ ,/' @ +\ \ \ @ + \ \ `\ @ + \ `\__\@ + `\/_/ @ + @ + @@ + __ @ +/\ `\ @ +\`\ \ @ + `\`\ \ @ + `\/' \@ + /\__/@ + \/_/ @ + @ + @@ + __ @ + _\ \ _ @ +/\_` ' \ @ +\/_> <_ @ + /\_, ,_\@ + \/_/\_\/@ + \/_/ @ + @ + @@ + __ @ + /\ \ @ + \_\ \___ @ +/\___ __\@ +\/__/\ \_/@ + \ \_\ @ + \/_/ @ + @ + @@ + @ + @ + @ + @ + __ @ +/\ \@ +\ \/@ + \/ @ + @@ + @ + @ + @ + _______ @ +/\______\@ +\/______/@ + @ + @ + @@ + @ + @ + @ + @ + __ @ +/\_\@ +\/_/@ + @ + @@ + __@ + / /@ + / / @ + / / @ + / / @ + /_/ @ +/_/ @ + @ + @@ + __ @ + /'__`\ @ +/\ \/\ \ @ +\ \ \ \ \ @ + \ \ \_\ \ @ + \ \____/ @ + \/___/ @ + @ + @@ + _ @ + /' \ @ + /\_, \ @ + \/_/\ \ @ + \ \ \ @ + \ \_\ @ + \/_/ @ + @ + @@ + ___ @ + /'___`\ @ +/\_\ /\ \ @ +\/_/// /__ @ + // /_\ \@ + /\______/@ + \/_____/ @ + @ + @@ + __ @ + /'__`\ @ +/\_\L\ \ @ +\/_/_\_<_ @ + /\ \L\ \ @ + \ \____/ @ + \/___/ @ + @ + @@ + __ __ @ +/\ \\ \ @ +\ \ \\ \ @ + \ \ \\ \_ @ + \ \__ ,_\@ + \/_/\_\/@ + \/_/ @ + @ + @@ + ______ @ +/\ ___\ @ +\ \ \__/ @ + \ \___``\ @ + \/\ \L\ \@ + \ \____/@ + \/___/ @ + @ + @@ + ____ @ + /'___\ @ +/\ \__/ @ +\ \ _``\ @ + \ \ \L\ \ @ + \ \____/ @ + \/___/ @ + @ + @@ + ________ @ +/\_____ \ @ +\/___//'/' @ + /' /' @ + /' /' @ + /\_/ @ + \// @ + @ + @@ + __ @ + /'_ `\ @ +/\ \L\ \ @ +\/_> _ <_ @ + /\ \L\ \ @ + \ \____/ @ + \/___/ @ + @ + @@ + __ @ + /'_ `\ @ +/\ \L\ \ @ +\ \___, \ @ + \/__,/\ \ @ + \ \_\@ + \/_/@ + @ + @@ + @ + @ + __ @ +/\_\ @ +\/_/_ @ + /\_\@ + \/_/@ + @ + @@ + @ + @ + __ @ +/\_\ @ +\/_/_ @ + /\ \@ + \ \/@ + \/ @ + @@ + ___ @ + / / @ + / / @ +/< < @ +\ `\ `\ @ + `\ `\_|@ + `\// @ + @ + @@ + @ + _______ @ +/\______\ @ +\/______/_ @ + /\______\@ + \/______/@ + @ + @ + @@ + __ @ +/\ `\ @ +\ `\ `\ @ + `\ > >@ + / / @ + /\_/ @ + \// @ + @ + @@ + _ @ + /'_`\ @ +/\_\/\`\@ +\/_//'/'@ + /\_\ @ + \/\_\@ + \/_/@ + @ + @@ + @ + __ @ + /'_`\_ @ + /'/'_` \ @ +/\ \ \L\ \ @ +\ \ `\__,_\@ + \ `\_____\@ + `\/_____/@ + @@ + ______ @ +/\ _ \ @ +\ \ \L\ \ @ + \ \ __ \ @ + \ \ \/\ \ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\ \ @ + \ \ _ <' @ + \ \ \L\ \@ + \ \____/@ + \/___/ @ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \/\_\ @ + \ \ \/_/_ @ + \ \ \L\ \@ + \ \____/@ + \/___/ @ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \/\ \ @ + \ \ \ \ \ @ + \ \ \_\ \@ + \ \____/@ + \/___/ @ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\_\ @ + \ \ _\L @ + \ \ \L\ \@ + \ \____/@ + \/___/ @ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\_\@ + \ \ _\/@ + \ \ \/ @ + \ \_\ @ + \/_/ @ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\_\ @ + \ \ \L_L @ + \ \ \/, \@ + \ \____/@ + \/___/ @ + @ + @@ + __ __ @ +/\ \/\ \ @ +\ \ \_\ \ @ + \ \ _ \ @ + \ \ \ \ \ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + ______ @ +/\__ _\ @ +\/_/\ \/ @ + \ \ \ @ + \_\ \__ @ + /\_____\@ + \/_____/@ + @ + @@ + _____ @ +/\___ \ @ +\/__/\ \ @ + _\ \ \ @ + /\ \_\ \@ + \ \____/@ + \/___/ @ + @ + @@ + __ __ @ +/\ \/\ \ @ +\ \ \/'/' @ + \ \ , < @ + \ \ \\`\ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + __ @ +/\ \ @ +\ \ \ @ + \ \ \ __ @ + \ \ \L\ \@ + \ \____/@ + \/___/ @ + @ + @@ + @ + /'\_/`\ @ +/\ \ @ +\ \ \__\ \ @ + \ \ \_/\ \ @ + \ \_\\ \_\@ + \/_/ \/_/@ + @ + @@ + __ __ @ +/\ \/\ \ @ +\ \ `\\ \ @ + \ \ , ` \ @ + \ \ \`\ \ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + _____ @ +/\ __`\ @ +\ \ \/\ \ @ + \ \ \ \ \ @ + \ \ \_\ \ @ + \ \_____\@ + \/_____/@ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\ \@ + \ \ ,__/@ + \ \ \/ @ + \ \_\ @ + \/_/ @ + @ + @@ + _____ @ +/\ __`\ @ +\ \ \/\ \ @ + \ \ \ \ \ @ + \ \ \\'\\ @ + \ \___\_\@ + \/__//_/@ + @ + @@ + ____ @ +/\ _`\ @ +\ \ \L\ \ @ + \ \ , / @ + \ \ \\ \ @ + \ \_\ \_\@ + \/_/\/ /@ + @ + @@ + ____ @ +/\ _`\ @ +\ \,\L\_\ @ + \/_\__ \ @ + /\ \L\ \ @ + \ `\____\@ + \/_____/@ + @ + @@ + ______ @ +/\__ _\ @ +\/_/\ \/ @ + \ \ \ @ + \ \ \ @ + \ \_\@ + \/_/@ + @ + @@ + __ __ @ +/\ \/\ \ @ +\ \ \ \ \ @ + \ \ \ \ \ @ + \ \ \_\ \ @ + \ \_____\@ + \/_____/@ + @ + @@ + __ __ @ +/\ \/\ \ @ +\ \ \ \ \ @ + \ \ \ \ \ @ + \ \ \_/ \@ + \ `\___/@ + `\/__/ @ + @ + @@ + __ __ @ +/\ \ __/\ \ @ +\ \ \/\ \ \ \ @ + \ \ \ \ \ \ \ @ + \ \ \_/ \_\ \@ + \ `\___x___/@ + '\/__//__/ @ + @ + @@ + __ __ @ +/\ \ /\ \ @ +\ `\`\/'/' @ + `\/ > < @ + \/'/\`\ @ + /\_\\ \_\@ + \/_/ \/_/@ + @ + @@ + __ __ @ +/\ \ /\ \@ +\ `\`\\/'/@ + `\ `\ /' @ + `\ \ \ @ + \ \_\@ + \/_/@ + @ + @@ + ________ @ +/\_____ \ @ +\/____//'/' @ + //'/' @ + //'/'___ @ + /\_______\@ + \/_______/@ + @ + @@ + ____ @ +/\ _\ @ +\ \ \/ @ + \ \ \ @ + \ \ \_ @ + \ \___\@ + \/___/@ + @ + @@ + __ @ +/\ `\ @ +\`\ `\ @ +`\`\ `\ @ + `\`\ `\ @ + `\`\__\@ + `\/__/@ + @ + @@ + ____ @ +/\__ \ @ +\/_/\ \ @ + \ \ \ @ + \_\ \ @ + /\___\@ + \/___/@ + @ + @@ + __ @ + / `\ @ +/\_/\_\ @ +\//\// $ @ + $ $ @ + $ $@ + @ + @ + @@ + @ + @ + @ + @ + @ +$ $ @ + $_______ @ + /\______\@ + \/______/@@ + __ @ +/\ \ @ +\ \\$ @ + \// $ @ + $ $ @ + $ $@ + @ + @ + @@ + @ + @ + __ @ + /'__`\ @ +/\ \L\.\_ @ +\ \__/.\_\@ + \/__/\/_/@ + @ + @@ + __ @ +/\ \ @ +\ \ \____ @ + \ \ '__`\ @ + \ \ \L\ \@ + \ \_,__/@ + \/___/ @ + @ + @@ + @ + @ + ___ @ + /'___\ @ +/\ \__/ @ +\ \____\@ + \/____/@ + @ + @@ + __ @ + /\ \ @ + \_\ \ @ + /'_` \ @ +/\ \L\ \ @ +\ \___,_\@ + \/__,_ /@ + @ + @@ + @ + @ + __ @ + /'__`\ @ +/\ __/ @ +\ \____\@ + \/____/@ + @ + @@ + ___ @ + /'___\ @ +/\ \__/ @ +\ \ ,__\@ + \ \ \_/@ + \ \_\ @ + \/_/ @ + @ + @@ + @ + @ + __ @ + /'_ `\ @ +/\ \L\ \ @ +\ \____ \ @ + \/___L\ \@ + /\____/@ + \_/__/ @@ + __ @ +/\ \ @ +\ \ \___ @ + \ \ _ `\ @ + \ \ \ \ \ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + @ + __ @ +/\_\ @ +\/\ \ @ + \ \ \ @ + \ \_\@ + \/_/@ + @ + @@ + @ + __ @ +/\_\ @ +\/\ \ @ + \ \ \ @ + _\ \ \ @ +/\ \_\ \@ +\ \____/@ + \/___/ @@ + __ @ +/\ \ @ +\ \ \/'\ @ + \ \ , < @ + \ \ \\`\ @ + \ \_\ \_\@ + \/_/\/_/@ + @ + @@ + ___ @ +/\_ \ @ +\//\ \ @ + \ \ \ @ + \_\ \_ @ + /\____\@ + \/____/@ + @ + @@ + @ + @ + ___ ___ @ +/' __` __`\ @ +/\ \/\ \/\ \ @ +\ \_\ \_\ \_\@ + \/_/\/_/\/_/@ + @ + @@ + @ + @ + ___ @ +/' _ `\ @ +/\ \/\ \ @ +\ \_\ \_\@ + \/_/\/_/@ + @ + @@ + @ + @ + ___ @ + / __`\ @ +/\ \L\ \@ +\ \____/@ + \/___/ @ + @ + @@ + @ + @ + _____ @ +/\ '__`\ @ +\ \ \L\ \@ + \ \ ,__/@ + \ \ \/ @ + \ \_\ @ + \/_/ @@ + @ + @ + __ @ + /'__`\ @ +/\ \L\ \ @ +\ \___, \ @ + \/___/\ \ @ + \ \_\@ + \/_/@@ + @ + @ + _ __ @ +/\`'__\@ +\ \ \/ @ + \ \_\ @ + \/_/ @ + @ + @@ + @ + @ + ____ @ + /',__\ @ +/\__, `\@ +\/\____/@ + \/___/ @ + @ + @@ + __ @ +/\ \__ @ +\ \ ,_\ @ + \ \ \/ @ + \ \ \_ @ + \ \__\@ + \/__/@ + @ + @@ + @ + @ + __ __ @ +/\ \/\ \ @ +\ \ \_\ \@ + \ \____/@ + \/___/ @ + @ + @@ + @ + @ + __ __ @ +/\ \/\ \ @ +\ \ \_/ |@ + \ \___/ @ + \/__/ @ + @ + @@ + @ + @ + __ __ __ @ +/\ \/\ \/\ \ @ +\ \ \_/ \_/ \@ + \ \___x___/'@ + \/__//__/ @ + @ + @@ + @ + @ + __ _ @ +/\ \/'\ @ +\/> \@ + /\___/@ + \/__/ @@ + @ + @ + ____ @ +/\_ ,`\ @ +\/_/ /_ @ + /\____\@ + \/____/@ + @ + @@ + _ @ + /' \@ + \ ,/'@ + <' \ @ +< \ `\ @ + \`\__\@ + \/__/@ + @ + @@ + __ @ +/\ \ @ +\ \ \ @ + \ \ \ @ + \ \ \ @ + \ \ \ @ + \ \ \ @ + \ \_\@ + \/_/@@ + __ @ +/\ `\ @ +\`\ \ @ + \ \ `>@ + //' \ @ +/\__/' @ +\/_/ @ + @ + @ @ + _ _ @ + /' \/' \ @ +/\_/\__//$ @ +\//\/__/ $ @ + $ $@ + @ + @ + @ + @@ + __ __ @ +/\_\/\_\ @ +\/\ _ \ @ + \ \ \L\ \ @ + \ \ __ \ @ + \ \_\/\_\@ + \/_/\/_/@ + @ + @@ + __ __ @ +/\_\/\_\ @ +\/\ __ \ @ + \ \ \/\ \ @ + \ \ \_\ \ @ + \ \_____\@ + \/_____/@ + @ + @ @ + __ __ @ +/\_\/\_\ @ +\/\ \/\ \ @ + \ \ \ \ \ @ + \ \ \_\ \ @ + \ \_____\@ + \/_____/@ + @ + @ @ + __ __ @ +/\_\/\_\ @ +\/_/\/_/_ @ + /'_` \ @ + /\ \L\ \ @ + \ `\__,_\@ + `\/_,__/@ + @ + @@ + __ __ @ +/\_\/\_\ @ +\/_/\/_/ @ + /'_`\ @ + /\ \L\ \@ + \ `\___/@ + `\/__/ @ + @ + @@ + __ __ @ +/\_\ \_\ @ +\/_/\/_/_ @ + /\ \/\ \ @ + \ \ \_\ \@ + \ `\___/@ + `\/__/ @ + @ + @@ + ______ @ +/\ __ \ @ +\ \ \/\ \ @ + \ \ \<_<_ @ + \ \ \ \ \@ + \ \ \\_/@ + \ \_\/ @ + \/_/ @ + @@ \ No newline at end of file diff --git a/asset/font/flat.flf b/asset/font/flat.flf new file mode 100644 index 0000000..9ab6f3b --- /dev/null +++ b/asset/font/flat.flf @@ -0,0 +1,2227 @@ +flf2a$ 6 5 16 15 11 0 24463 +Standard by Glenn Chappell & Ian Chai 3/93 -- based on Frank's .sig +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Modified for figlet 2.2 by John Cowan + to add Latin-{2,3,4,5} support (Unicode U+0100-017F). +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + $@ + $@ + $@ + $@ + $@ + $@@ + _ @ + | |@ + | |@ + |_|@ + (_)@ + @@ + _ _ @ + ( | )@ + V V @ + $ @ + $ @ + @@ + _ _ @ + _| || |_ @ + |_ .. _|@ + |_ _|@ + |_||_| @ + @@ + _ @ + | | @ + / __)@ + \__ \@ + ( /@ + |_| @@ + _ __@ + (_)/ /@ + / / @ + / /_ @ + /_/(_)@ + @@ + ___ @ + ( _ ) @ + / _ \/\@ + | (_> <@ + \___/\/@ + @@ + _ @ + ( )@ + |/ @ + $ @ + $ @ + @@ + __@ + / /@ + | | @ + | | @ + | | @ + \_\@@ + __ @ + \ \ @ + | |@ + | |@ + | |@ + /_/ @@ + @ + __/\__@ + \ /@ + /_ _\@ + \/ @ + @@ + @ + _ @ + _| |_ @ + |_ _|@ + |_| @ + @@ + @ + @ + @ + _ @ + ( )@ + |/ @@ + @ + @ + _____ @ + |_____|@ + $ @ + @@ + @ + @ + @ + _ @ + (_)@ + @@ + __ @ + / / @ + / / @ + / / @ + /_/ @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ @ + / | @ + | | @ + | | @ + |_| @ + @@ + ____ @ + |___ \ @ + __) |@ + / __/ @ + |_____|@ + @@ + _____ @ + |___ / @ + |_ \ @ + ___) |@ + |____/ @ + @@ + _ _ @ + | || | @ + | || | @ + |__ | @ + |_| @ + @@ + ____ @ + | ___| @ + |___ \ @ + ___) |@ + |____/ @ + @@ + __ @ + / /_ @ + | '_ \ @ + | (_) |@ + \___/ @ + @@ + _____ @ + |___ |@ + / / @ + / / @ + /_/ @ + @@ + ___ @ + ( _ ) @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + ___ @ + / _ \ @ + | (_) |@ + \__, |@ + /_/ @ + @@ + @ + _ @ + (_)@ + _ @ + (_)@ + @@ + @ + _ @ + (_)@ + _ @ + ( )@ + |/ @@ + __@ + / /@ + / / @ + \ \ @ + \_\@ + @@ + @ + _____ @ + |_____|@ + |_____|@ + $ @ + @@ + __ @ + \ \ @ + \ \@ + / /@ + /_/ @ + @@ + ___ @ + |__ \@ + / /@ + |_| @ + (_) @ + @@ + ____ @ + / __ \ @ + / / _` |@ + | | (_| |@ + \ \__,_|@ + \____/ @@ + _ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @@ + ____ @ + | __ ) @ + | _ \ @ + | |_) |@ + |____/ @ + @@ + ____ @ + / ___|@ + | | @ + | |___ @ + \____|@ + @@ + ____ @ + | _ \ @ + | | | |@ + | |_| |@ + |____/ @ + @@ + _____ @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @@ + _____ @ + | ___|@ + | |_ @ + | _| @ + |_| @ + @@ + ____ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ + _ _ @ + | | | |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ + ___ @ + |_ _|@ + | | @ + | | @ + |___|@ + @@ + _ @ + | |@ + _ | |@ + | |_| |@ + \___/ @ + @@ + _ __@ + | |/ /@ + | ' / @ + | . \ @ + |_|\_\@ + @@ + _ @ + | | @ + | | @ + | |___ @ + |_____|@ + @@ + __ __ @ + | \/ |@ + | |\/| |@ + | | | |@ + |_| |_|@ + @@ + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + ____ @ + | _ \ @ + | |_) |@ + | __/ @ + |_| @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \__\_\@ + @@ + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ + ____ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + @@ + _ _ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @@ + __ __@ + \ \ / /@ + \ \ / / @ + \ V / @ + \_/ @ + @@ + __ __@ + \ \ / /@ + \ \ /\ / / @ + \ V V / @ + \_/\_/ @ + @@ + __ __@ + \ \/ /@ + \ / @ + / \ @ + /_/\_\@ + @@ + __ __@ + \ \ / /@ + \ V / @ + | | @ + |_| @ + @@ + _____@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ + __ @ + | _|@ + | | @ + | | @ + | | @ + |__|@@ + __ @ + \ \ @ + \ \ @ + \ \ @ + \_\@ + @@ + __ @ + |_ |@ + | |@ + | |@ + | |@ + |__|@@ + /\ @ + |/\|@ + $ @ + $ @ + $ @ + @@ + @ + @ + @ + @ + _____ @ + |_____|@@ + _ @ + ( )@ + \|@ + $ @ + $ @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ @ + | |__ @ + | '_ \ @ + | |_) |@ + |_.__/ @ + @@ + @ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ + _ @ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + @ + ___ @ + / _ \@ + | __/@ + \___|@ + @@ + __ @ + / _|@ + | |_ @ + | _|@ + |_| @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ + _ @ + | |__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + _/ |@ + |__/ @@ + _ @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + @@ + _ @ + | |@ + | |@ + | |@ + |_|@ + @@ + @ + _ __ ___ @ + | '_ ` _ \ @ + | | | | | |@ + |_| |_| |_|@ + @@ + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + @ + _ __ @ + | '_ \ @ + | |_) |@ + | .__/ @ + |_| @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |_|@@ + @ + _ __ @ + | '__|@ + | | @ + |_| @ + @@ + @ + ___ @ + / __|@ + \__ \@ + |___/@ + @@ + _ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ + @ + __ __@ + \ \ / /@ + \ V / @ + \_/ @ + @@ + @ + __ __@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @@ + @ + __ __@ + \ \/ /@ + > < @ + /_/\_\@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ + @ + ____@ + |_ /@ + / / @ + /___|@ + @@ + __@ + / /@ + | | @ + < < @ + | | @ + \_\@@ + _ @ + | |@ + | |@ + | |@ + | |@ + |_|@@ + __ @ + \ \ @ + | | @ + > >@ + | | @ + /_/ @@ + /\/|@ + |/\/ @ + $ @ + $ @ + $ @ + @@ + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@ + $@@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + | |@ + | |@ + |_|@ + @@ +162 CENT SIGN + _ @ + | | @ + / __)@ + | (__ @ + \ )@ + |_| @@ +163 POUND SIGN + ___ @ + / ,_\ @ + _| |_ @ + | |___ @ + (_,____|@ + @@ +164 CURRENCY SIGN + /\___/\@ + \ _ /@ + | (_) |@ + / ___ \@ + \/ \/@ + @@ +165 YEN SIGN + __ __ @ + \ V / @ + |__ __|@ + |__ __|@ + |_| @ + @@ +166 BROKEN BAR + _ @ + | |@ + |_|@ + _ @ + | |@ + |_|@@ +167 SECTION SIGN + __ @ + _/ _)@ + / \ \ @ + \ \\ \@ + \ \_/@ + (__/ @@ +168 DIAERESIS + _ _ @ + (_) (_)@ + $ $ @ + $ $ @ + $ $ @ + @@ +169 COPYRIGHT SIGN + _____ @ + / ___ \ @ + / / __| \ @ + | | (__ |@ + \ \___| / @ + \_____/ @@ +170 FEMININE ORDINAL INDICATOR + __ _ @ + / _` |@ + \__,_|@ + |____|@ + $ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ + / / / @ + \ \ \ @ + \_\_\@ + @@ +172 NOT SIGN + @ + _____ @ + |___ |@ + |_|@ + $ @ + @@ +173 SOFT HYPHEN + @ + @ + ____ @ + |____|@ + $ @ + @@ +174 REGISTERED SIGN + _____ @ + / ___ \ @ + / | _ \ \ @ + | | / |@ + \ |_|_\ / @ + \_____/ @@ +175 MACRON + _____ @ + |_____|@ + $ @ + $ @ + $ @ + @@ +176 DEGREE SIGN + __ @ + / \ @ + | () |@ + \__/ @ + $ @ + @@ +177 PLUS-MINUS SIGN + _ @ + _| |_ @ + |_ _|@ + _|_|_ @ + |_____|@ + @@ +178 SUPERSCRIPT TWO + ___ @ + |_ )@ + / / @ + /___|@ + $ @ + @@ +179 SUPERSCRIPT THREE + ____@ + |__ /@ + |_ \@ + |___/@ + $ @ + @@ +180 ACUTE ACCENT + __@ + /_/@ + $ @ + $ @ + $ @ + @@ +181 MICRO SIGN + @ + _ _ @ + | | | |@ + | |_| |@ + | ._,_|@ + |_| @@ +182 PILCROW SIGN + _____ @ + / |@ + | (| | |@ + \__ | |@ + |_|_|@ + @@ +183 MIDDLE DOT + @ + _ @ + (_)@ + $ @ + $ @ + @@ +184 CEDILLA + @ + @ + @ + @ + _ @ + )_)@@ +185 SUPERSCRIPT ONE + _ @ + / |@ + | |@ + |_|@ + $ @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \@ + \___/@ + |___|@ + $ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + ____ @ + \ \ \ @ + \ \ \@ + / / /@ + /_/_/ @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ __ @ + / | / / _ @ + | |/ / | | @ + |_/ /|_ _|@ + /_/ |_| @ + @@ +189 VULGAR FRACTION ONE HALF + _ __ @ + / | / /__ @ + | |/ /_ )@ + |_/ / / / @ + /_/ /___|@ + @@ +190 VULGAR FRACTION THREE QUARTERS + ____ __ @ + |__ / / / _ @ + |_ \/ / | | @ + |___/ /|_ _|@ + /_/ |_| @ + @@ +191 INVERTED QUESTION MARK + _ @ + (_) @ + | | @ + / /_ @ + \___|@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + \_\ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __ @ + /_/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + //\ @ + |/_\| @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/| @ + |/\/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + (o) @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +198 LATIN CAPITAL LETTER AE + ______ @ + / ____|@ + / _ _| @ + / __ |___ @ + /_/ |_____|@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + ____ @ + / ___|@ + | | @ + | |___ @ + \____|@ + )_) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + _\_\_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __ @ + _/_/_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + //\ @ + |/_\| @ + | ____|@ + | _|_ @ + |_____|@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_)_(_)@ + | ____|@ + | _|_ @ + |_____|@ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + \_\ @ + |_ _|@ + | | @ + |___|@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __ @ + /_/ @ + |_ _|@ + | | @ + |___|@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + |_ _|@ + | | @ + |___|@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + |_ _| @ + | | @ + |___| @ + @@ +208 LATIN CAPITAL LETTER ETH + ____ @ + | _ \ @ + _| |_| |@ + |__ __| |@ + |____/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/|@ + |/\/ @ + | \| |@ + | .` |@ + |_|\_|@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/| @ + |/\/ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +215 MULTIPLICATION SIGN + @ + @ + /\/\@ + > <@ + \/\/@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + ____ @ + / _// @ + | |// |@ + | //| |@ + //__/ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | | | |@ + | |_| |@ + \___/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __ @ + __/_/__@ + \ \ / /@ + \ V / @ + |_| @ + @@ +222 LATIN CAPITAL LETTER THORN + _ @ + | |___ @ + | __ \@ + | ___/@ + |_| @ + @@ +223 LATIN SMALL LETTER SHARP S + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + \_\_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __ @ + /_/_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/| @ + |/\/_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + (()) @ + / _ '|@ + | (_| |@ + \__,_|@ + @@ +230 LATIN SMALL LETTER AE + @ + __ ____ @ + / _` _ \@ + | (_| __/@ + \__,____|@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + ___ @ + / __|@ + | (__ @ + \___|@ + )_) @@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + \_\ @ + / _ \@ + | __/@ + \___|@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __ @ + /_/ @ + / _ \@ + | __/@ + \___|@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //\ @ + |/_\|@ + / _ \@ + | __/@ + \___|@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | __/ @ + \___| @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + | |@ + | |@ + |_|@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + | |@ + | |@ + |_|@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + | | @ + | | @ + |_| @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + | | @ + | | @ + |_| @ + @@ +240 LATIN SMALL LETTER ETH + /\/\ @ + > < @ + _\/\ |@ + / __` |@ + \____/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/| @ + |/\/ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/| @ + |/\/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ +247 DIVISION SIGN + @ + _ @ + _(_)_ @ + |_____|@ + (_) @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + ____ @ + / _//\ @ + | (//) |@ + \//__/ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +254 LATIN SMALL LETTER THORN + _ @ + | |__ @ + | '_ \ @ + | |_) |@ + | .__/ @ + |_| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON + ____ @ + /___/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +0x0101 LATIN SMALL LETTER A WITH MACRON + ___ @ + /_ _/@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE + _ _ @ + \\_// @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +0x0103 LATIN SMALL LETTER A WITH BREVE + \_/ @ + ___ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK + @ + _ @ + /_\ @ + / _ \ @ + /_/ \_\@ + (_(@@ +0x0105 LATIN SMALL LETTER A WITH OGONEK + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + (_(@@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE + __ @ + _/_/ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x0107 LATIN SMALL LETTER C WITH ACUTE + __ @ + /__/@ + / __|@ + | (__ @ + \___|@ + @@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX + /\ @ + _//\\@ + / ___|@ + | |___ @ + \____|@ + @@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX + /\ @ + /_\ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010A LATIN CAPITAL LETTER C WITH DOT ABOVE + [] @ + ____ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x010B LATIN SMALL LETTER C WITH DOT ABOVE + [] @ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010C LATIN CAPITAL LETTER C WITH CARON + \\// @ + _\/_ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x010D LATIN SMALL LETTER C WITH CARON + \\//@ + _\/ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010E LATIN CAPITAL LETTER D WITH CARON + \\// @ + __\/ @ + | _ \ @ + | |_| |@ + |____/ @ + @@ +0x010F LATIN SMALL LETTER D WITH CARON + \/ _ @ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE + ____ @ + |_ __ \ @ + /| |/ | |@ + /|_|/_| |@ + |_____/ @ + @@ +0x0111 LATIN SMALL LETTER D WITH STROKE + ---|@ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON + ____ @ + /___/ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0113 LATIN SMALL LETTER E WITH MACRON + ____@ + /_ _/@ + / _ \ @ + | __/ @ + \___| @ + @@ +0x0114 LATIN CAPITAL LETTER E WITH BREVE + _ _ @ + \\_// @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0115 LATIN SMALL LETTER E WITH BREVE + \\ //@ + -- @ + / _ \ @ + | __/ @ + \___| @ + @@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE + [] @ + _____ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE + [] @ + __ @ + / _ \@ + | __/@ + \___|@ + @@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK + @ + _____ @ + | ____|@ + | _|_ @ + |_____|@ + (__(@@ +0x0119 LATIN SMALL LETTER E WITH OGONEK + @ + ___ @ + / _ \@ + | __/@ + \___|@ + (_(@@ +0x011A LATIN CAPITAL LETTER E WITH CARON + \\// @ + __\/_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x011B LATIN SMALL LETTER E WITH CARON + \\//@ + \/ @ + / _ \@ + | __/@ + \___|@ + @@ +0x011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX + _/\_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x011D LATIN SMALL LETTER G WITH CIRCUMFLEX + /\ @ + _/_ \@ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x011E LATIN CAPITAL LETTER G WITH BREVE + _\/_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x011F LATIN SMALL LETTER G WITH BREVE + \___/ @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE + _[]_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE + [] @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA + ____ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + )__) @@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |_))))@@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX + _/ \_ @ + | / \ |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX + _ /\ @ + | |//\ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE + _ _ @ + | |=| |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ +0x0127 LATIN SMALL LETTER H WITH STROKE + _ @ + |=|__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE + /\//@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x0129 LATIN SMALL LETTER I WITH TILDE + @ + /\/@ + | |@ + | |@ + |_|@ + @@ +0x012A LATIN CAPITAL LETTER I WITH MACRON + /___/@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x012B LATIN SMALL LETTER I WITH MACRON + ____@ + /___/@ + | | @ + | | @ + |_| @ + @@ +0x012C LATIN CAPITAL LETTER I WITH BREVE + \__/@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x012D LATIN SMALL LETTER I WITH BREVE + @ + \_/@ + | |@ + | |@ + |_|@ + @@ +0x012E LATIN CAPITAL LETTER I WITH OGONEK + ___ @ + |_ _|@ + | | @ + | | @ + |___|@ + (__(@@ +0x012F LATIN SMALL LETTER I WITH OGONEK + _ @ + (_) @ + | | @ + | | @ + |_|_@ + (_(@@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE + _[] @ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x0131 LATIN SMALL LETTER DOTLESS I + @ + _ @ + | |@ + | |@ + |_|@ + @@ +0x0132 LATIN CAPITAL LIGATURE IJ + ___ _ @ + |_ _|| |@ + | | | |@ + | |_| |@ + |__|__/ @ + @@ +0x0133 LATIN SMALL LIGATURE IJ + _ _ @ + (_) (_)@ + | | | |@ + | | | |@ + |_|_/ |@ + |__/ @@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX + /\ @ + /_\|@ + _ | | @ + | |_| | @ + \___/ @ + @@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX + /\@ + /_\@ + | |@ + | |@ + _/ |@ + |__/ @@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA + _ _ @ + | |/ / @ + | ' / @ + | . \ @ + |_|\_\ @ + )__)@@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA + _ @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + )_)@@ +0x0138 LATIN SMALL LETTER KRA + @ + _ __ @ + | |/ \@ + | < @ + |_|\_\@ + @@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE + _ //@ + | | // @ + | | @ + | |___ @ + |_____|@ + @@ +0x013A LATIN SMALL LETTER L WITH ACUTE + //@ + | |@ + | |@ + | |@ + |_|@ + @@ +0x013B LATIN CAPITAL LETTER L WITH CEDILLA + _ @ + | | @ + | | @ + | |___ @ + |_____|@ + )__)@@ +0x013C LATIN SMALL LETTER L WITH CEDILLA + _ @ + | | @ + | | @ + | | @ + |_| @ + )_)@@ +0x013D LATIN CAPITAL LETTER L WITH CARON + _ \\//@ + | | \/ @ + | | @ + | |___ @ + |_____|@ + @@ +0x013E LATIN SMALL LETTER L WITH CARON + _ \\//@ + | | \/ @ + | | @ + | | @ + |_| @ + @@ +0x013F LATIN CAPITAL LETTER L WITH MIDDLE DOT + _ @ + | | @ + | | [] @ + | |___ @ + |_____|@ + @@ +0x0140 LATIN SMALL LETTER L WITH MIDDLE DOT + _ @ + | | @ + | | []@ + | | @ + |_| @ + @@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE + __ @ + | // @ + |//| @ + // |__ @ + |_____|@ + @@ +0x0142 LATIN SMALL LETTER L WITH STROKE + _ @ + | |@ + |//@ + //|@ + |_|@ + @@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE + _/ /_ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ +0x0144 LATIN SMALL LETTER N WITH ACUTE + _ @ + _ /_/ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + )_) @@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + )_) @@ +0x0147 LATIN CAPITAL LETTER N WITH CARON + _\/ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ +0x0148 LATIN SMALL LETTER N WITH CARON + \\// @ + _\/_ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + @ + _ __ @ + ( )| '_\ @ + |/| | | |@ + |_| |_|@ + @@ +0x014A LATIN CAPITAL LETTER ENG + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \ |@ + )_)@@ +0x014B LATIN SMALL LETTER ENG + _ __ @ + | '_ \ @ + | | | |@ + |_| | |@ + | |@ + |__ @@ +0x014C LATIN CAPITAL LETTER O WITH MACRON + ____ @ + /_ _/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +0x014D LATIN SMALL LETTER O WITH MACRON + ____ @ + /_ _/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +0x014E LATIN CAPITAL LETTER O WITH BREVE + \ / @ + _-_ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x014F LATIN SMALL LETTER O WITH BREVE + \ / @ + _-_ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + ___ @ + /_/_/@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE + ___ @ + /_/_/@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0152 LATIN CAPITAL LIGATURE OE + ___ ___ @ + / _ \| __|@ + | | | | | @ + | |_| | |__@ + \___/|____@ + @@ +0x0153 LATIN SMALL LIGATURE OE + @ + ___ ___ @ + / _ \ / _ \@ + | (_) | __/@ + \___/ \___|@ + @@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE + _/_/ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ +0x0155 LATIN SMALL LETTER R WITH ACUTE + __@ + _ /_/@ + | '__|@ + | | @ + |_| @ + @@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + )_) @@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA + @ + _ __ @ + | '__|@ + | | @ + |_| @ + )_) @@ +0x0158 LATIN CAPITAL LETTER R WITH CARON + _\_/ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ +0x0159 LATIN SMALL LETTER R WITH CARON + \\// @ + _\/_ @ + | '__|@ + | | @ + |_| @ + @@ +0x015A LATIN CAPITAL LETTER S WITH ACUTE + _/_/ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x015B LATIN SMALL LETTER S WITH ACUTE + __@ + _/_/@ + / __|@ + \__ \@ + |___/@ + @@ +0x015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX + _/\_ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x015D LATIN SMALL LETTER S WITH CIRCUMFLEX + @ + /_\_@ + / __|@ + \__ \@ + |___/@ + @@ +0x015E LATIN CAPITAL LETTER S WITH CEDILLA + ____ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + )__)@@ +0x015F LATIN SMALL LETTER S WITH CEDILLA + @ + ___ @ + / __|@ + \__ \@ + |___/@ + )_)@@ +0x0160 LATIN CAPITAL LETTER S WITH CARON + _\_/ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x0161 LATIN SMALL LETTER S WITH CARON + \\//@ + _\/ @ + / __|@ + \__ \@ + |___/@ + @@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + )__)@@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA + _ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + )_)@@ +0x0164 LATIN CAPITAL LETTER T WITH CARON + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + @@ +0x0165 LATIN SMALL LETTER T WITH CARON + \/ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE + _____ @ + |_ _|@ + | | @ + -|-|- @ + |_| @ + @@ +0x0167 LATIN SMALL LETTER T WITH STROKE + _ @ + | |_ @ + | __|@ + |-|_ @ + \__|@ + @@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE + @ + _/\/_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x0169 LATIN SMALL LETTER U WITH TILDE + @ + _/\/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016A LATIN CAPITAL LETTER U WITH MACRON + ____ @ + /__ _/@ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x016B LATIN SMALL LETTER U WITH MACRON + ____ @ + / _ /@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016C LATIN CAPITAL LETTER U WITH BREVE + @ + \_/_ @ + | | | |@ + | |_| |@ + \____|@ + @@ +0x016D LATIN SMALL LETTER U WITH BREVE + @ + \_/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016E LATIN CAPITAL LETTER U WITH RING ABOVE + O @ + __ _ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x016F LATIN SMALL LETTER U WITH RING ABOVE + O @ + __ __ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + -- --@ + /_//_/@ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE + ____@ + _/_/_/@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK + _ _ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + (__(@@ +0x0173 LATIN SMALL LETTER U WITH OGONEK + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + (_(@@ +0x0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX + __ /\ __@ + \ \ //\\/ /@ + \ \ /\ / / @ + \ V V / @ + \_/\_/ @ + @@ +0x0175 LATIN SMALL LETTER W WITH CIRCUMFLEX + /\ @ + __ //\\__@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @@ +0x0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + /\ @ + __//\\ @ + \ \ / /@ + \ V / @ + |_| @ + @@ +0x0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX + /\ @ + //\\ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS + [] []@ + __ _@ + \ \ / /@ + \ V / @ + |_| @ + @@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE + __/_/@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017A LATIN SMALL LETTER Z WITH ACUTE + _ @ + _/_/@ + |_ /@ + / / @ + /___|@ + @@ +0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE + __[]_@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017C LATIN SMALL LETTER Z WITH DOT ABOVE + [] @ + ____@ + |_ /@ + / / @ + /___|@ + @@ +0x017D LATIN CAPITAL LETTER Z WITH CARON + _\_/_@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017E LATIN SMALL LETTER Z WITH CARON + \\//@ + _\/_@ + |_ /@ + / / @ + /___|@ + @@ +0x017F LATIN SMALL LETTER LONG S + __ @ + / _|@ + |-| | @ + |-| | @ + |_| @ + @@ +0x02C7 CARON + \\//@ + \/ @ + $@ + $@ + $@ + $@@ +0x02D8 BREVE + \\_//@ + \_/ @ + $@ + $@ + $@ + $@@ +0x02D9 DOT ABOVE + []@ + $@ + $@ + $@ + $@ + $@@ +0x02DB OGONEK + $@ + $@ + $@ + $@ + $@ + )_) @@ +0x02DD DOUBLE ACUTE ACCENT + _ _ @ + /_/_/@ + $@ + $@ + $@ + $@@ \ No newline at end of file diff --git a/config.yml b/config.yml index 2a05147..97b7884 100644 --- a/config.yml +++ b/config.yml @@ -1,30 +1,26 @@ runcharts: - title: SEARCH ENGINE RESPONSE TIME (sec) - precision: 3 position: w: 0 h: 0 size: - w: 30 - h: 20 + w: 50 + h: 14 + precision: 3 items: - label: GOOGLE script: curl -o /dev/null -s -w '%{time_total}' https://www.google.com - label: YAHOO script: curl -o /dev/null -s -w '%{time_total}' https://search.yahoo.com - - label: YANDEX - script: curl -o /dev/null -s -w '%{time_total}' https://yandex.com - label: BING script: curl -o /dev/null -s -w '%{time_total}' https://www.bing.com - - label: DDGO - script: curl -o /dev/null -s -w '%{time_total}' https://duckduckgo.com - title: SEARCH ENGINE RESPONSE TIME 2 (sec) refresh-rate-ms: 5000 position: w: 0 - h: 20 + h: 14 size: - w: 15 + w: 17 h: 10 legend: enabled: true @@ -38,11 +34,29 @@ runcharts: script: curl -o /dev/null -s -w '%{time_total}' https://www.bing.com - title: MONGO COLLECTIONS COUNT position: - w: 15 - h: 20 + w: 17 + h: 14 size: - w: 15 + w: 17 h: 10 items: - label: POSTS script: mongo --quiet --host=localhost blog --eval "db.getCollection('post').find({}).size()" +asciiboxes: +- title: COUNT + position: + w: 34 + h: 14 + size: + w: 16 + h: 4 + script: date +%r +- title: MODE + position: + w: 34 + h: 18 + size: + w: 16 + h: 6 + script: date +%r + font: 3d diff --git a/config/config.go b/config/config.go index cf0758a..f973ee1 100644 --- a/config/config.go +++ b/config/config.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/sqshq/sampler/console" "github.com/sqshq/sampler/data" + "github.com/sqshq/sampler/widgets/asciibox" "gopkg.in/yaml.v2" "io/ioutil" "log" @@ -11,14 +12,14 @@ import ( ) type Config struct { - Theme *console.Theme `yaml:"theme,omitempty"` - RunCharts []RunChartConfig `yaml:"runcharts,omitempty"` + Theme *console.Theme `yaml:"theme,omitempty"` + RunCharts []RunChartConfig `yaml:"runcharts,omitempty"` + AsciiBoxes []AsciiBoxConfig `yaml:"asciiboxes,omitempty"` } type ComponentConfig struct { Title string `yaml:"title"` RefreshRateMs *int `yaml:"refresh-rate-ms,omitempty"` - Precision *int `yaml:"precision,omitempty"` Position Position `yaml:"position"` Size Size `yaml:"size"` } @@ -26,9 +27,16 @@ type ComponentConfig struct { type RunChartConfig struct { ComponentConfig `yaml:",inline"` Legend *LegendConfig `yaml:"legend,omitempty"` + Precision *int `yaml:"precision,omitempty"` Items []data.Item `yaml:"items"` } +type AsciiBoxConfig struct { + ComponentConfig `yaml:",inline"` + data.Item `yaml:",inline"` + Font *asciibox.AsciiFont `yaml:"font,omitempty"` +} + type LegendConfig struct { Enabled bool `yaml:"enabled"` Details bool `yaml:"details"` @@ -49,6 +57,8 @@ type ComponentType rune const ( TypeRunChart ComponentType = 0 TypeBarChart ComponentType = 1 + TypeTextBox ComponentType = 2 + TypeAsciiBox ComponentType = 3 ) type ComponentSettings struct { @@ -91,6 +101,12 @@ func (c *Config) findComponent(componentType ComponentType, componentTitle strin return &c.RunCharts[i].ComponentConfig } } + case TypeAsciiBox: + for i, component := range c.AsciiBoxes { + if component.Title == componentTitle { + return &c.AsciiBoxes[i].ComponentConfig + } + } } panic(fmt.Sprintf( diff --git a/config/default.go b/config/default.go index 656449a..2adda0a 100644 --- a/config/default.go +++ b/config/default.go @@ -2,10 +2,11 @@ package config import ( "github.com/sqshq/sampler/console" + "github.com/sqshq/sampler/widgets/asciibox" ) const ( - defaultRefreshRateMs = 300 + defaultRefreshRateMs = 1000 defaultPrecision = 1 defaultTheme = console.ThemeDark ) @@ -38,6 +39,26 @@ func (c *Config) setDefaultValues() { } c.RunCharts[i] = chart } + + for i, box := range c.AsciiBoxes { + if box.RefreshRateMs == nil { + r := defaultRefreshRateMs + box.RefreshRateMs = &r + } + if box.Label == nil { + label := string(i) + box.Label = &label + } + if box.Font == nil { + font := asciibox.AsciiFontFlat + box.Font = &font + } + if box.Color == nil { + color := console.ColorWhite + box.Color = &color + } + c.AsciiBoxes[i] = box + } } func (c *Config) setDefaultLayout() { diff --git a/data/item.go b/data/item.go index 3a3fb47..ef8bb08 100644 --- a/data/item.go +++ b/data/item.go @@ -7,7 +7,7 @@ import ( ) type Item struct { - Label string `yaml:"label"` + Label *string `yaml:"label,omitempty"` Script string `yaml:"script"` Color *ui.Color `yaml:"color,omitempty"` } diff --git a/data/sampler.go b/data/sampler.go index c229c87..2407c16 100644 --- a/data/sampler.go +++ b/data/sampler.go @@ -25,14 +25,7 @@ func NewSampler(consumer Consumer, item Item, rateMs int) Sampler { } func (self *Sampler) sample() { - value, err := self.item.nextValue() - - sample := Sample{ - Value: value, - Error: err, - Label: self.item.Label, - } - + sample := Sample{Value: value, Error: err, Label: *self.item.Label} self.consumer.ConsumeSample(sample) } diff --git a/go.mod b/go.mod index 2a8102d..9c9bf3d 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ require ( github.com/hajimehoshi/go-mp3 v0.1.1 github.com/hajimehoshi/oto v0.1.1 github.com/mattn/go-runewidth v0.0.4 // indirect + github.com/mbndr/figlet4go v0.0.0-20170909125910-47ded4d17030 github.com/mitchellh/go-wordwrap v1.0.0 // indirect github.com/sqshq/termui v0.0.0-20190125032456-731556c09f2c gopkg.in/yaml.v2 v2.2.2 diff --git a/go.sum b/go.sum index 0b3d96a..284d0f6 100644 --- a/go.sum +++ b/go.sum @@ -11,6 +11,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mbndr/figlet4go v0.0.0-20170909125910-47ded4d17030 h1:TSUoxTASZ3DmI7VDNX7/cbGlwz0OCp9RW07tUDnx3TQ= +github.com/mbndr/figlet4go v0.0.0-20170909125910-47ded4d17030/go.mod h1:QzTGLGoOqLHUBK8/EZ0v4Fa4CdyXmdyRwCHcl0YbeO4= github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= diff --git a/main.go b/main.go index 6ddac0d..1c48755 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "github.com/sqshq/sampler/data" "github.com/sqshq/sampler/event" "github.com/sqshq/sampler/widgets" + "github.com/sqshq/sampler/widgets/asciibox" "github.com/sqshq/sampler/widgets/runchart" ui "github.com/sqshq/termui" "time" @@ -28,11 +29,17 @@ func main() { layout.AddComponent(chart, c.Title, c.Position, c.Size, config.TypeRunChart) for _, item := range c.Items { - chart.AddLine(item.Label, *item.Color) + chart.AddLine(*item.Label, *item.Color) data.NewSampler(chart, item, *c.RefreshRateMs) } } + for _, a := range cfg.AsciiBoxes { + box := asciibox.NewAsciiBox(a.Title, *a.Font, *a.Item.Color) + layout.AddComponent(box, a.Title, a.Position, a.Size, config.TypeAsciiBox) + data.NewSampler(box, a.Item, *a.RefreshRateMs) + } + handler := event.Handler{ Layout: layout, RenderEvents: time.NewTicker(console.RenderRate).C, diff --git a/widgets/asciibox/asciibox.go b/widgets/asciibox/asciibox.go new file mode 100644 index 0000000..97638c7 --- /dev/null +++ b/widgets/asciibox/asciibox.go @@ -0,0 +1,69 @@ +package asciibox + +import ( + fl "github.com/mbndr/figlet4go" + "github.com/sqshq/sampler/data" + ui "github.com/sqshq/termui" + "image" +) + +type AsciiBox struct { + ui.Block + text string + ascii string + style ui.Style + render *fl.AsciiRender + options *fl.RenderOptions +} + +type AsciiFont string + +const ( + AsciiFontFlat AsciiFont = "flat" + AsciiFont3D AsciiFont = "3d" +) + +func NewAsciiBox(title string, font AsciiFont, color ui.Color) *AsciiBox { + + block := *ui.NewBlock() + block.Title = title + + render := fl.NewAsciiRender() + err := render.LoadFont("asset/") + if err != nil { + panic("Can't load fonts: " + err.Error()) + } + + options := fl.NewRenderOptions() + options.FontName = string(font) + + return &AsciiBox{ + Block: block, + style: ui.NewStyle(color), + render: render, + options: options, + } +} + +func (a *AsciiBox) ConsumeSample(sample data.Sample) { + a.text = sample.Value + a.ascii, _ = a.render.RenderOpts(sample.Value, a.options) +} + +func (a *AsciiBox) Draw(buffer *ui.Buffer) { + + buffer.Fill(ui.NewCell(' ', ui.NewStyle(ui.ColorBlack)), a.GetRect()) + a.Block.Draw(buffer) + + point := a.Inner.Min + cells := ui.ParseText(a.ascii, a.style) + + for i := 0; i < len(cells) && point.Y < a.Inner.Max.Y; i++ { + if cells[i].Rune == '\n' { + point = image.Pt(a.Inner.Min.X, point.Y+1) + } else if point.In(a.Inner) { + buffer.SetCell(cells[i], point) + point = point.Add(image.Pt(1, 0)) + } + } +} diff --git a/widgets/layout.go b/widgets/layout.go index 6ed77b9..515f8ab 100644 --- a/widgets/layout.go +++ b/widgets/layout.go @@ -27,7 +27,7 @@ const ( ) const ( - columnsCount = 30 + columnsCount = 50 rowsCount = 30 ) diff --git a/widgets/menu.go b/widgets/menu.go index 0c24a38..933d85c 100644 --- a/widgets/menu.go +++ b/widgets/menu.go @@ -70,6 +70,9 @@ func (m *Menu) up() { break } } + if m.option == MenuOptionPinpoint && m.component.Type != config.TypeRunChart { + m.up() + } } func (m *Menu) down() { @@ -79,6 +82,9 @@ func (m *Menu) down() { break } } + if m.option == MenuOptionPinpoint && m.component.Type != config.TypeRunChart { + m.down() + } } func (m *Menu) moveOrResize() { @@ -92,11 +98,8 @@ func (m *Menu) Draw(buffer *ui.Buffer) { } m.updateDimensions() - - buffer.Fill( - ui.NewCell(' ', ui.NewStyle(ui.ColorBlack)), - m.GetRect(), - ) + buffer.Fill(ui.NewCell(' ', ui.NewStyle(ui.ColorBlack)), m.GetRect()) + m.drawInnerBorder(buffer) switch m.mode { case MenuModeHighlight: @@ -107,7 +110,6 @@ func (m *Menu) Draw(buffer *ui.Buffer) { m.renderOptions(buffer) } - m.drawInnerBorder(buffer) m.Block.Draw(buffer) } diff --git a/widgets/runchart/legend.go b/widgets/runchart/legend.go index 140bb5f..639e34d 100644 --- a/widgets/runchart/legend.go +++ b/widgets/runchart/legend.go @@ -107,5 +107,9 @@ func getDiffWithPreviousValue(line TimeLine) float64 { } func getCurrentValue(line TimeLine) float64 { - return line.points[len(line.points)-1].value + if len(line.points) == 0 { + return 0 + } else { + return line.points[len(line.points)-1].value + } }