aboutsummaryrefslogtreecommitdiffstats
path: root/src/layout.rs
diff options
context:
space:
mode:
authorBrooks J Rady <b.j.rady@gmail.com>2021-01-05 22:41:23 +0000
committerBrooks J Rady <b.j.rady@gmail.com>2021-01-05 22:41:23 +0000
commiteb0f3b02856f279f44ca54de8ba0f5f2dec6a017 (patch)
tree0c40b52ec2cafc3a3cd22dd2da851a78ea2b023a /src/layout.rs
parentMerge branch 'main' into wasm-launchable (diff)
downloadsl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.tar.gz
sl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.tar.xz
sl0ppij-eb0f3b02856f279f44ca54de8ba0f5f2dec6a017.zip
Very borken
Diffstat (limited to 'src/layout.rs')
-rw-r--r--src/layout.rs23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/layout.rs b/src/layout.rs
index 03a1cf1f..efe7bae6 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -61,8 +61,11 @@ fn split_space_to_parts_horizontally(
split_parts
}
-fn split_space(space_to_split: &PositionAndSize, layout: &Layout) -> Vec<PositionAndSize> {
- let mut pane_positions: Vec<PositionAndSize> = vec![];
+fn split_space(
+ space_to_split: &PositionAndSize,
+ layout: &Layout,
+) -> Vec<(Layout, PositionAndSize)> {
+ let mut pane_positions = Vec::new();
let percentages: Vec<u8> = layout
.parts
.iter()
@@ -88,7 +91,7 @@ fn split_space(space_to_split: &PositionAndSize, layout: &Layout) -> Vec<Positio
let mut part_positions = split_space(&part_position_and_size, part);
pane_positions.append(&mut part_positions);
} else {
- pane_positions.push(*part_position_and_size);
+ pane_positions.push((part.clone(), *part_position_and_size)); // FIXME: Probably doesn't need to be cloned
}
}
pane_positions
@@ -165,17 +168,20 @@ impl Layout {
panic!("The total percent for each part should equal 100.");
}
}
- pub fn total_panes(&self) -> usize {
+
+ pub fn total_terminal_panes(&self) -> usize {
let mut total_panes = 0;
total_panes += self.parts.len();
for part in self.parts.iter() {
- total_panes += part.total_panes();
+ if part.plugin.is_none() {
+ total_panes += part.total_terminal_panes();
+ }
}
total_panes
}
// FIXME: I probably shouldn't exist, much less with PathBuf (use &Path)
- #[cfg(feature = "wasm-wip")]
+
pub fn list_plugins(&self) -> Vec<&PathBuf> {
let mut plugins: Vec<_> = self.parts.iter().flat_map(Layout::list_plugins).collect();
if let Some(path) = &self.plugin {
@@ -184,7 +190,10 @@ impl Layout {
plugins
}
- pub fn position_panes_in_space(&self, space: &PositionAndSize) -> Vec<PositionAndSize> {
+ pub fn position_panes_in_space(
+ &self,
+ space: &PositionAndSize,
+ ) -> Vec<(Layout, PositionAndSize)> {
split_space(space, &self)
}
}