Popup with fixed sizes or percentage

This commit is contained in:
veeso
2023-02-09 17:19:27 +01:00
parent 4d5f3a6b63
commit 1db2ff7ec5
5 changed files with 102 additions and 80 deletions

View File

@@ -8,7 +8,7 @@ pub mod ssh_keys;
pub mod theme;
use super::*;
use crate::utils::ui::draw_area_in;
use crate::utils::ui::{Popup, Size};
pub use setup::*;
pub use ssh_keys::*;
pub use theme::*;
@@ -117,23 +117,23 @@ impl SetupActivity {
pub(super) fn view_popups(&mut self, f: &mut Frame) {
if self.app.mounted(&Id::Common(IdCommon::ErrorPopup)) {
let popup = draw_area_in(f.size(), 50, 10);
let popup = Popup(Size::Percentage(50), Size::Unit(3)).draw_in(f.size());
f.render_widget(Clear, popup);
// make popup
self.app.view(&Id::Common(IdCommon::ErrorPopup), f, popup);
} else if self.app.mounted(&Id::Common(IdCommon::QuitPopup)) {
// make popup
let popup = draw_area_in(f.size(), 40, 10);
let popup = Popup(Size::Percentage(40), Size::Unit(3)).draw_in(f.size());
f.render_widget(Clear, popup);
self.app.view(&Id::Common(IdCommon::QuitPopup), f, popup);
} else if self.app.mounted(&Id::Common(IdCommon::Keybindings)) {
// make popup
let popup = draw_area_in(f.size(), 50, 70);
let popup = Popup(Size::Percentage(50), Size::Percentage(70)).draw_in(f.size());
f.render_widget(Clear, popup);
self.app.view(&Id::Common(IdCommon::Keybindings), f, popup);
} else if self.app.mounted(&Id::Common(IdCommon::SavePopup)) {
// make popup
let popup = draw_area_in(f.size(), 30, 10);
let popup = Popup(Size::Percentage(30), Size::Unit(3)).draw_in(f.size());
f.render_widget(Clear, popup);
self.app.view(&Id::Common(IdCommon::SavePopup), f, popup);
}

View File

@@ -5,7 +5,7 @@
// Locals
use super::{components, Context, Id, IdCommon, IdSsh, SetupActivity, ViewLayout};
use crate::utils::ui::draw_area_in;
use crate::utils::ui::{Popup, Size};
// Ext
use tuirealm::tui::layout::{Constraint, Direction, Layout};
@@ -45,11 +45,11 @@ impl SetupActivity {
// Popups
self.view_popups(f);
if self.app.mounted(&Id::Ssh(IdSsh::DelSshKeyPopup)) {
let popup = draw_area_in(f.size(), 30, 10);
let popup = Popup(Size::Percentage(30), Size::Unit(3)).draw_in(f.size());
f.render_widget(Clear, popup);
self.app.view(&Id::Ssh(IdSsh::DelSshKeyPopup), f, popup);
} else if self.app.mounted(&Id::Ssh(IdSsh::SshHost)) {
let popup = draw_area_in(f.size(), 50, 20);
let popup = Popup(Size::Percentage(50), Size::Percentage(20)).draw_in(f.size());
f.render_widget(Clear, popup);
let popup_chunks = Layout::default()
.direction(Direction::Vertical)