# `Plushie.Event.WindowEvent`
[🔗](https://github.com/plushie-ui/plushie-elixir/blob/v0.6.0/lib/plushie/event/window_event.ex#L1)

Window lifecycle events.

## Pattern matching

    def update(model, %WindowEvent{type: :resized, window_id: "main", width: w, height: h}), do: ...
    def update(model, %WindowEvent{type: :close_requested, window_id: wid}), do: ...

# `delivered_t`

```elixir
@type delivered_t() :: t()
```

Window event delivered by the renderer.

# `event_type`

```elixir
@type event_type() ::
  :opened
  | :closed
  | :close_requested
  | :moved
  | :resized
  | :focused
  | :unfocused
  | :rescaled
  | :file_hovered
  | :file_dropped
  | :files_hovered_left
```

# `t`

```elixir
@type t() :: %Plushie.Event.WindowEvent{
  height: number() | nil,
  path: String.t() | nil,
  position: {number(), number()} | nil,
  scale_factor: number() | nil,
  type: event_type(),
  width: number() | nil,
  window_id: String.t(),
  x: number() | nil,
  y: number() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
