Use new rule widgets in UI
This commit is contained in:
parent
32f1ad5aae
commit
7a8a6d7418
1 changed files with 14 additions and 19 deletions
|
|
@ -17,6 +17,7 @@ use super::chat::ChatState;
|
||||||
use super::widgets::background::Background;
|
use super::widgets::background::Background;
|
||||||
use super::widgets::empty::Empty;
|
use super::widgets::empty::Empty;
|
||||||
use super::widgets::list::{List, ListState};
|
use super::widgets::list::{List, ListState};
|
||||||
|
use super::widgets::rules::{HRule, VRule};
|
||||||
use super::widgets::text::Text;
|
use super::widgets::text::Text;
|
||||||
use super::widgets::Widget;
|
use super::widgets::Widget;
|
||||||
use super::{util, UiEvent};
|
use super::{util, UiEvent};
|
||||||
|
|
@ -104,7 +105,10 @@ impl EuphRoom {
|
||||||
Box::new(self.chat.widget()).render(frame).await;
|
Box::new(self.chat.widget()).render(frame).await;
|
||||||
frame.pop();
|
frame.pop();
|
||||||
self.render_status(frame, status_pos, status);
|
self.render_status(frame, status_pos, status);
|
||||||
Self::render_hsplit(frame, hsplit);
|
|
||||||
|
frame.push(Pos::new(0, hsplit), Size::new(size.width, 1));
|
||||||
|
Box::new(HRule).render(frame).await;
|
||||||
|
frame.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn render_with_nick_list(
|
async fn render_with_nick_list(
|
||||||
|
|
@ -132,10 +136,18 @@ impl EuphRoom {
|
||||||
frame.push(chat_pos, chat_size);
|
frame.push(chat_pos, chat_size);
|
||||||
Box::new(self.chat.widget()).render(frame).await;
|
Box::new(self.chat.widget()).render(frame).await;
|
||||||
frame.pop();
|
frame.pop();
|
||||||
|
|
||||||
self.render_status(frame, status_pos, status);
|
self.render_status(frame, status_pos, status);
|
||||||
self.render_nick_list(frame, nick_list_pos, nick_list_size, joined)
|
self.render_nick_list(frame, nick_list_pos, nick_list_size, joined)
|
||||||
.await;
|
.await;
|
||||||
Self::render_vsplit_hsplit(frame, vsplit, hsplit);
|
|
||||||
|
frame.push(Pos::new(0, hsplit), Size::new(vsplit as u16, 1));
|
||||||
|
Box::new(HRule).render(frame).await;
|
||||||
|
frame.pop();
|
||||||
|
|
||||||
|
frame.push(Pos::new(vsplit, 0), Size::new(1, size.height));
|
||||||
|
Box::new(VRule).render(frame).await;
|
||||||
|
frame.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_status(&self, frame: &mut Frame, pos: Pos, status: &Option<Option<Status>>) {
|
fn render_status(&self, frame: &mut Frame, pos: Pos, status: &Option<Option<Status>>) {
|
||||||
|
|
@ -271,23 +283,6 @@ impl EuphRoom {
|
||||||
frame.pop();
|
frame.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_hsplit(frame: &mut Frame, hsplit: i32) {
|
|
||||||
for x in 0..frame.size().width as i32 {
|
|
||||||
frame.write(Pos::new(x, hsplit), "─");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn render_vsplit_hsplit(frame: &mut Frame, vsplit: i32, hsplit: i32) {
|
|
||||||
for x in 0..vsplit {
|
|
||||||
frame.write(Pos::new(x, hsplit), "─");
|
|
||||||
}
|
|
||||||
|
|
||||||
for y in 0..frame.size().height as i32 {
|
|
||||||
let symbol = if y == hsplit { "┤" } else { "│" };
|
|
||||||
frame.write(Pos::new(vsplit, y), symbol);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub async fn handle_key_event(
|
pub async fn handle_key_event(
|
||||||
&mut self,
|
&mut self,
|
||||||
terminal: &mut Terminal,
|
terminal: &mut Terminal,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue