use bevy::{
prelude::*,
window::{
ApplicationLifetime, RequestRedraw, WindowBackendScaleFactorChanged, WindowCloseRequested,
WindowClosed, WindowCreated, WindowDestroyed, WindowFocused, WindowResized,
WindowScaleFactorChanged, WindowThemeChanged,
},
};
pub struct HeadlessDefaultPlugins;
impl Plugin for HeadlessDefaultPlugins {
fn build(&self, app: &mut App) {
app.add_event::<WindowResized>()
.add_event::<WindowCreated>()
.add_event::<WindowClosed>()
.add_event::<WindowCloseRequested>()
.add_event::<WindowDestroyed>()
.add_event::<RequestRedraw>()
.add_event::<CursorMoved>()
.add_event::<CursorEntered>()
.add_event::<CursorLeft>()
.add_event::<ReceivedCharacter>()
.add_event::<Ime>()
.add_event::<WindowFocused>()
.add_event::<WindowScaleFactorChanged>()
.add_event::<WindowBackendScaleFactorChanged>()
.add_event::<FileDragAndDrop>()
.add_event::<WindowMoved>()
.add_event::<WindowThemeChanged>()
.add_event::<ApplicationLifetime>()
.add_plugins(DefaultPlugins.build().disable::<WindowPlugin>());
}
}