Similar to https://github.com/zed-industries/zed/pull/18690 & https://github.com/zed-industries/zed/pull/18695, this PR enables required docs for `ui` and does some cleanup. Changes: - Enables the `deny(missing_docs)` crate-wide. - Adds `allow(missing_docs)` on many modules until folks pick them up to document them - Documents some modules (all in `ui/src/styles`) - Crate root-level organization: Traits move to `traits`, other misc organization - Cleaned out a bunch of unused code. Note: I'd like to remove `utils/format_distance` but the assistant panel uses it. To move it over to use the `time_format` crate we may need to update it to use `time` instead of `chrono`. Needs more investigation. Release Notes: - N/A
18 lines
638 B
Rust
18 lines
638 B
Rust
use gpui::{InteractiveElement, SharedString, Styled};
|
|
|
|
/// A trait for elements that can be made visible on hover by
|
|
/// tracking a specific group.
|
|
pub trait VisibleOnHover {
|
|
/// Sets the element to only be visible when the specified group is hovered.
|
|
///
|
|
/// Pass `""` as the `group_name` to use the global group.
|
|
fn visible_on_hover(self, group_name: impl Into<SharedString>) -> Self;
|
|
}
|
|
|
|
impl<E: InteractiveElement + Styled> VisibleOnHover for E {
|
|
fn visible_on_hover(self, group_name: impl Into<SharedString>) -> Self {
|
|
self.invisible()
|
|
.group_hover(group_name, |style| style.visible())
|
|
}
|
|
}
|