Hide password while authenticating
This commit is contained in:
parent
7b52add24e
commit
c661984d1c
3 changed files with 53 additions and 6 deletions
39
src/ui/widgets/cursor.rs
Normal file
39
src/ui/widgets/cursor.rs
Normal 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));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue