Skip to main content

Crate iced_resizable_split

Crate iced_resizable_split 

Source
Expand description

§Example usage

struct App {
    split_state: iced_resizable_split::State,
}

enum AppMessage {
    SplitDragged(iced_resizable_split::State),
}

impl App {
    const fn new() -> Self {
        Self {
            split_state: iced_resizable_split::State::new(0.5, 0.1, 0.9),
        }
    }

    const fn update(&mut self, msg: AppMessage) {
        match msg {
            AppMessage::SplitDragged(state) => self.split_state.update(state),
        }
    }

    fn view(&self) -> iced::Element<'_, AppMessage> {
        iced_resizable_split::split_vertical(
            iced::widget::text("TOP split"),
            iced::widget::text("BOTTOM split"),
            self.split_state,
            AppMessage::SplitDragged,
        )
        .style(|_theme, state| iced_resizable_split::Style {
            divider_width: 1.0,
            divider_color: if state == iced_resizable_split::style::State::Dragging {
                iced::Color::WHITE
            } else if state == iced_resizable_split::style::State::Hovering {
                iced::Color::WHITE.scale_alpha(0.5)
            } else {
                iced::Color::BLACK
            },
        })
        .into()
    }
}

fn main() -> iced::Result {
    iced::application(App::new, App::update, App::view)
        .title("Split")
        .theme(iced::theme::Theme::Dark)
        .run()
}

Re-exports§

pub use state::State;
pub use style::Status;
pub use style::Style;

Modules§

state
style

Functions§

split_horizontal
split_vertical