Guppy.Server (guppy v0.1.0)

Copy Markdown View Source

Central Guppy runtime server.

Owns view ids, window ownership, native request dispatch, event routing, menu ownership, and cleanup when owners or the native event target exit.

Summary

Types

owner_entry()

@type owner_entry() :: %{monitor: reference(), views: MapSet.t(view_id())}

state()

@type state() :: %Guppy.Server{
  app_badge_monitor: reference() | nil,
  app_badge_owner: pid() | nil,
  app_owner: pid() | nil,
  app_owner_monitor: reference() | nil,
  dock_menu_monitor: reference() | nil,
  dock_menu_owner: pid() | nil,
  menu_monitor: reference() | nil,
  menu_owner: pid() | nil,
  monitors: %{optional(reference()) => pid()},
  native: module(),
  native_request_timeout: timeout(),
  native_server: GenServer.server(),
  next_view_id: pos_integer(),
  owners: %{optional(pid()) => owner_entry()},
  views: %{optional(view_id()) => pid()}
}

view_id()

@type view_id() :: pos_integer()

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

choose_directory_dialog(server \\ __MODULE__, opts \\ [], timeout \\ 30000)

claim_app_owner(server \\ __MODULE__, owner)

close_window(server \\ __MODULE__, view_id, timeout \\ 5000)

focus_window(server \\ __MODULE__, view_id, timeout \\ 5000)

info(server \\ __MODULE__)

open_file_dialog(server \\ __MODULE__, opts \\ [], timeout \\ 30000)

open_window(server \\ __MODULE__, owner, ir, opts \\ [], timeout \\ 5000)

ping(server \\ __MODULE__, timeout \\ 5000)

read_clipboard_text(server \\ __MODULE__, timeout \\ 5000)

release_app_owner(server \\ __MODULE__, owner)

render(server \\ __MODULE__, view_id, ir, timeout \\ 5000)

save_file_dialog(server \\ __MODULE__, opts \\ [], timeout \\ 30000)

set_app_badge(server \\ __MODULE__, owner, label, timeout \\ 5000)

set_dock_menu(server \\ __MODULE__, owner, items, timeout \\ 5000)

set_menus(server \\ __MODULE__, owner, menus, timeout \\ 5000)

start_link(opts \\ [])

validate_window_options_for_test(opts)

view_count(server \\ __MODULE__, timeout \\ 5000)

write_clipboard_text(server \\ __MODULE__, text, timeout \\ 5000)