feat: IPC for get_visible, set_visible, new bar name config option

This commit is contained in:
A-Cloud-Ninja
2023-07-12 18:17:04 -04:00
committed by Jake Stanger
parent 2f8443f349
commit 2ccb2633c6
6 changed files with 93 additions and 15 deletions

View File

@@ -37,4 +37,18 @@ pub enum Command {
/// The path to the sheet.
path: PathBuf,
},
/// Set the visibility of the bar with the given name.
SetVisible {
///Bar name to target.
bar_name: String,
/// The visibility status.
visible: bool,
},
/// Get the visibility of the bar with the given name.
GetVisible {
/// Bar name to target.
bar_name: String,
},
}

View File

@@ -146,6 +146,33 @@ impl Ipc {
}
}
Command::Ping => Response::Ok,
Command::SetVisible { bar_name, visible } => {
let windows = application.windows();
let found = windows
.iter()
.find(|window| window.widget_name() == bar_name);
if let Some(window) = found {
window.set_visible(visible);
Response::Ok
} else {
Response::error("Bar not found")
}
}
Command::GetVisible { bar_name } => {
let windows = application.windows();
let found = windows
.iter()
.find(|window| window.widget_name() == bar_name);
if let Some(window) = found {
Response::OkValue {
value: window.is_visible().to_string(),
}
} else {
Response::error("Bar not found")
}
}
}
}