Raxol.Terminal.Window.WindowServer (Raxol v2.0.1)

View Source

A unified window manager for terminal applications.

This module provides a GenServer-based window management system that handles window creation, splitting, resizing, and other window operations.

Summary

Types

state()

@type state() :: %{
  windows: %{required(window_id()) => window_state()},
  active_window: window_id() | nil,
  next_id: non_neg_integer(),
  config: %{
    default_size: {non_neg_integer(), non_neg_integer()},
    max_size: {non_neg_integer(), non_neg_integer()},
    default_buffer_id: String.t() | nil,
    default_renderer_id: String.t() | nil
  }
}

t()

@type t() :: window_state()

window_id()

@type window_id() :: non_neg_integer()

window_state()

@type window_state() :: %{
  id: window_id(),
  title: String.t() | nil,
  icon_name: String.t() | nil,
  size: {non_neg_integer(), non_neg_integer()},
  position: {non_neg_integer(), non_neg_integer()},
  maximized: boolean(),
  iconified: boolean(),
  previous_size: {non_neg_integer(), non_neg_integer()} | nil,
  stacking_order: :normal | :above | :below,
  parent_id: window_id() | nil,
  children: [window_id()],
  split_type: :horizontal | :vertical | :none,
  buffer_id: String.t() | nil,
  renderer_id: String.t() | nil
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

cleanup()

close_window(window_id)

create_window(opts \\ [])

get_active_window()

get_window_state(window_id)

handle_manager_cast(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_cast/2.

handle_manager_info(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_info/2.

move(window_id, x, y)

resize(window_id, width, height)

set_active_window(window_id)

set_icon_name(window_id, name)

set_maximized(window_id, maximized)

set_stacking_order(window_id, order)

set_title(window_id, title)

split_window(window_id, direction)

start_link(init_opts \\ [])

update_config(config)