Search documentation of Plushie

# Plushie.Event.SystemEvent (Plushie v0.7.2)

Copy Markdown View Source

System query responses and platform events.

Covers responses to system queries (`system_info`, `system_theme`) as well as recurring platform events like animation frames and OS theme changes.

## Fields

- `type` - `:system_info`, `:system_theme`, `:animation_frame`, `:theme_changed`, `:all_windows_closed`, `:image_list`, `:tree_hash`, `:find_focused`, `:diagnostic`, `:recovery_failed`, `:announce`, or `:error`
- `tag` - caller-supplied correlation tag from the originating query; for diagnostics, the diagnostic code
- `value` - payload; shape depends on event type
- `id` - originating widget/canvas ID (diagnostics only)
- `window_id` - originating window ID (diagnostics only)

## Pattern matching

    def update(model, %SystemEvent{type: :system_info, value: %{"os" => os}}) do
      %{model | platform: os}
    end

    def update(model, %SystemEvent{type: :theme_changed, value: theme}) do
      %{model | theme: theme}
    end

    def update(model, %SystemEvent{type: :animation_frame, value: ts}) do
      advance_animation(model, ts)
    end

## Summary

### Types

delivered_t()

System event delivered by the renderer.

t()

## Types

# delivered_t()

    @type delivered_t() :: t()

System event delivered by the renderer.

# t()

    @type t() :: %Plushie.Event.SystemEvent{
      id: String.t() | nil,
      tag: String.t() | nil,
      type:
        :system_info
        | :system_theme
        | :animation_frame
        | :theme_changed
        | :all_windows_closed
        | :image_list
        | :tree_hash
        | :find_focused
        | :announce
        | :diagnostic
        | :recovery_failed
        | :error,
      value: map() | String.t() | number() | nil,
      window_id: String.t() | nil
    }