simple_custom_input/
simple-custom-input.rs1use cool_rust_input::{
2 set_terminal_line, CoolInput, CustomInputHandler, HandlerContext, InputTransform,
3};
4use crossterm::{
5 queue,
6 style::{Color, SetForegroundColor},
7};
8use std::io::stdout;
9
10struct MyHandler;
11impl CustomInputHandler for MyHandler {
12 fn get_input_transform(&mut self, ctx: HandlerContext) -> InputTransform {
13 let size = (ctx.terminal_size.0 - 10, ctx.terminal_size.1 - 2);
14 let offset = (5, 2);
15 InputTransform { size, offset }
16 }
17 fn after_draw_text(&mut self, _: HandlerContext) {
18 let _ = queue!(stdout(), SetForegroundColor(Color::Green));
21 let _ = set_terminal_line("[MY COOL TEXT EDITOR PROGRAM]", 5, 0, true);
22 }
23}
24
25fn main() -> Result<(), std::io::Error> {
26 let mut my_input = CoolInput::new(MyHandler, 0);
27 my_input.listen()?;
28 Ok(())
29}