//! Visual-only dependencies threaded into the render pass.
//!
//! Groups the widgets `Windows::textures` composes so the render entry points
//! carry one context instead of a long, order-sensitive argument list. It holds
//! no `Backend`, `LoopHandle`, or anything able to run system actions — those
//! stay out of the renderer.

use crate::app_switcher::AppSwitcher;
use crate::mpris::MprisState;
use crate::osd::Osd;
use crate::polkit::PolkitAgent;
use crate::screenshot::ScreenshotSelector;
use crate::sysmon::SystemState;
use crate::text::TextRenderer;
use crate::topbar::Topbar;

pub struct RenderContext<'a> {
    pub text: &'a mut TextRenderer,
    pub mpris: &'a mut MprisState,
    pub polkit: &'a mut PolkitAgent,
    pub osd: &'a mut Osd,
    pub topbar: &'a mut Topbar,
    pub sys: &'a SystemState,
    pub switcher: &'a mut AppSwitcher,
    pub screenshot: &'a mut ScreenshotSelector,
}
