From 930d61b9f067346f467d4d84015088f57c54da56 Mon Sep 17 00:00:00 2001 From: liam4 Date: Mon, 3 Jul 2017 21:00:02 -0300 Subject: Buttons and lists - Button class name changed to Button, from ButtonInput - Button layouts are now updated with fixLayout, rather than automatically when the text property is changed - Buttons now have a height of 1, so they can generally actually be used in layouts - New example for list form elements - List form elements let you navigate with up/down (or left/right, for horizontal lists) - List forms now have nextInput and previousInput methods --- examples/list-scroll-form.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 examples/list-scroll-form.js (limited to 'examples') diff --git a/examples/list-scroll-form.js b/examples/list-scroll-form.js new file mode 100644 index 0000000..a68cb78 --- /dev/null +++ b/examples/list-scroll-form.js @@ -0,0 +1,42 @@ +const ansi = require('../util/ansi') +const Root = require('../ui/Root') +const CommandLineInterfacer = require('../util/CommandLineInterfacer') +const ListScrollForm = require('../ui/form/ListScrollForm') +const Button = require('../ui/form/Button') + +const interfacer = new CommandLineInterfacer() + +interfacer.getScreenSize().then(size => { + const root = new Root(interfacer) + root.w = size.width + root.h = size.height + + const list = new ListScrollForm() + root.addChild(list) + list.x = 2 + list.y = 2 + list.w = root.contentW - 4 + list.h = root.contentH - 4 + + for (let item of ['Foo', 'Bar', 'Baz']) { + const button = new Button(item) + list.addInput(button) + + button.on('pressed', () => { + process.stdout.write(ansi.clearScreen()) + console.log(item) + process.exit(0) + }) + + button.fixLayout() + } + + list.fixLayout() + + root.select(list) + + setInterval(() => root.render(), 100) +}).catch(error => { + console.error(error) + process.exit(1) +}) -- cgit 1.3.0-6-gf8a5