Hide password while authenticating

This commit is contained in:
Joscha 2022-08-21 01:41:52 +02:00
parent 7b52add24e
commit c661984d1c
3 changed files with 53 additions and 6 deletions

39
src/ui/widgets/cursor.rs Normal file
View file

@ -0,0 +1,39 @@
use async_trait::async_trait;
use toss::frame::{Frame, Pos, Size};
use super::{BoxedWidget, Widget};
pub struct Cursor {
inner: BoxedWidget,
pos: Pos,
}
impl Cursor {
pub fn new<W: Into<BoxedWidget>>(inner: W) -> Self {
Self {
inner: inner.into(),
pos: Pos::ZERO,
}
}
pub fn at(mut self, pos: Pos) -> Self {
self.pos = pos;
self
}
pub fn at_xy(self, x: i32, y: i32) -> Self {
self.at(Pos::new(x, y))
}
}
#[async_trait]
impl Widget for Cursor {
fn size(&self, frame: &mut Frame, max_width: Option<u16>, max_height: Option<u16>) -> Size {
self.inner.size(frame, max_width, max_height)
}
async fn render(self: Box<Self>, frame: &mut Frame) {
self.inner.render(frame).await;
frame.set_cursor(Some(self.pos));
}
}