appcui 0.5.1

A feature-rich and cross-platform TUI/CUI framework for Rust, enabling modern terminal-based applications on Windows, Linux, and macOS. Includes built-in UI components like buttons, menus, list views, tree views, checkboxes, and more. Perfect for building fast and interactive CLI tools and text-based interfaces.
Documentation
//! Events emitted by an [`struct@super::Accordion`].
//!
//! Implement [`AccordionEvents`] on a window (or other parent) to react when the
//! expanded panel changes.

use crate::{system::Handle, ui::common::traits::EventProcessStatus};
use super::Accordion;

/// Events from an [`struct@super::Accordion`].
///
/// Implement this on a window to react when the expanded panel changes.
/// The default method returns [`EventProcessStatus::Ignored`].
pub trait AccordionEvents {
    /// Called when the expanded panel changes from `old_panel_index` to `new_panel_index`.
    fn on_panel_changed(&mut self, _handle: Handle<Accordion>, _new_panel_index: u32, _old_panel_index: u32) -> EventProcessStatus {
        EventProcessStatus::Ignored
    }
}

#[derive(Copy, Clone)]
pub(crate) struct EventData {
    pub(crate) new_panel_index: u32,
    pub(crate) old_panel_index: u32,
}