gled 2.8.0

gled is an application for creating animations and effects on artnet or wled light installations
pub mod grid;
pub mod header;

use super::{App, svg::Svg};
use crate::storage::asset::project::scene_instance_path::SceneInstancePath;
use egui::{Rect, Ui, Vec2};
use egui_tiles::UiResponse;

impl App {
    pub fn scenes(&mut self, ui: &mut Ui, path: SceneInstancePath) -> UiResponse {
        let drag_button_rect = {
            let mut pos = ui.next_widget_position();
            pos.y += 2.0;
            pos.x += ui.available_width() - 22.0;
            Rect::from_min_size(pos, Vec2::splat(20.0))
        };

        let svg = self.svg_mut().and_then(|svg| svg.image(ui.ctx()));
        let uv = Svg::preview_uv();

        self.effects_header(ui, path);
        self.effects_grid(ui, svg, uv, path);

        if ui
            .put(
                drag_button_rect,
                egui::Button::new("").sense(egui::Sense::drag()),
            )
            .drag_started()
        {
            UiResponse::DragStarted
        } else {
            UiResponse::None
        }
    }
}