Description
Appearance
type Appearance is record
Workspace : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Dock : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Header : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Focused_Header : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Rail : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Focused_Rail : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Action : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Drop_Target : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Disabled : Flyology_TUI.Styles.Style :=
Flyology_TUI.Styles.Default;
Floating_Window : Flyology_TUI.Components.Windows.Appearance;
end record;
Record fields
- Workspace
- Dock
- Header
- Focused_Header
- Rail
- Focused_Rail
- Action
- Drop_Target
- Disabled
- Floating_Window
Blur
procedure Blur (Item : in out Model)
Parameters
- Item
Bounds
function Bounds (Item : Model) return Flyology_TUI.Geometry.Rectangle
Parameters
- Item
Return value
Center_Region
function Center_Region
(Item : Presentation) return Flyology_TUI.Geometry.Rectangle
Parameters
- Item
Return value
Create
function Create
(Panes : Pane_Definition_Array;
Width, Height : Natural) return Model
Configure a bounded workspace. Pane IDs and occupied dock sides must be unique. Initially floating panes remember Side as their return dock. Children, labels, and presentation styles remain caller-owned.
Parameters
- Panes
- Width
- Height
Return value
Dock_Pane
procedure Dock_Pane
(Item : in out Model; Id : Pane_Id; To_Side : Dock_Side)
Dock raises Structure_Error when another pane already occupies Side.
Parameters
- Item
- Id
- To_Side
Dock_Side
type Dock_Side is (Dock_Left, Dock_Right, Dock_Top, Dock_Bottom);
Enumeration literals
- Dock_Left
- Dock_Right
- Dock_Top
- Dock_Bottom
Float_Pane
procedure Float_Pane (Item : in out Model; Id : Pane_Id)
Parameters
- Item
- Id
Focus
procedure Focus (Item : in out Model)
Parameters
- Item
Focus_Pane
procedure Focus_Pane (Item : in out Model; Id : Pane_Id)
Parameters
- Item
- Id
Focused
function Focused (Item : Model) return Boolean
Parameters
- Item
Return value
Focused_Pane
function Focused_Pane (Item : Model) return Pane_Id
Parameters
- Item
Return value
Frame
function Frame
(Item : Presentation) return Flyology_TUI.Surfaces.Surface
Parameters
- Item
Return value
From_Theme
function From_Theme
(Theme : Flyology_TUI.Themes.Theme) return Appearance
Parameters
- Theme
Return value
Handle
function Handle
(Item : in out Model;
Layout : Presentation;
Event : Flyology_TUI.Mouse.Local_Event)
return Flyology_TUI.Components.Interactions.Update_Result
Coordinates are local to the workspace. Dock headers and rails own their chrome; child body clicks pass through. Floating windows acquire capture for move/resize. Releasing a header drag on a free workspace edge docks there. A stale presentation rejects new gestures, while an existing matching release always relinquishes capture.
Parameters
- Item
- Layout
- Event
Return value
Handle
function Handle
(Item : in out Model;
Event : Flyology_TUI.Events.Terminal_Event)
return Flyology_TUI.Components.Interactions.Update_Result
Keyboard input is accepted only while focused. Tab selects a pane, Enter collapses or expands a dock, F toggles floating/docked state, and Shift+arrow docks on a free edge. Floating panes retain the Windows Alt-arrow move and Control-arrow resize behavior.
Parameters
- Item
- Event
Return value
Has_Pane
function Has_Pane (Item : Model; Id : Pane_Id) return Boolean
Parameters
- Item
- Id
Return value
Has_Pane
function Has_Pane
(Item : Presentation; Id : Pane_Id) return Boolean
Parameters
- Item
- Id
Return value
Header_Region
function Header_Region
(Item : Presentation; Id : Pane_Id)
return Flyology_TUI.Geometry.Rectangle
Parameters
- Item
- Id
Return value
Height
function Height (Item : Model) return Natural
Parameters
- Item
Return value
Is_Collapsed
function Is_Collapsed (Item : Model; Id : Pane_Id) return Boolean
Parameters
- Item
- Id
Return value
Is_Enabled
function Is_Enabled (Item : Model) return Boolean
Parameters
- Item
Return value
Label
function Label (Id : Pane_Id) return Wide_Wide_String
Parameters
- Id
Return value
Maximum_Panes
Maximum_Panes : Positive;
Model
type Model is tagged private;
Pane_Count
function Pane_Count (Item : Model) return Natural
Parameters
- Item
Return value
Pane_Definition
type Pane_Definition is record
Id : Pane_Id := Pane_Id'First;
Side : Dock_Side := Dock_Left;
Dock_Extent : Positive := 20;
Minimum_Extent : Positive := 4;
Float_X : Integer := 2;
Float_Y : Integer := 1;
Float_Width : Positive := 30;
Float_Height : Positive := 10;
Initially_Floating : Boolean := False;
Initially_Collapsed : Boolean := False;
Floatable : Boolean := True;
Collapsible : Boolean := True;
end record;
Record fields
- Id
- Side
- Dock_Extent
- Minimum_Extent
- Float_X
- Float_Y
- Float_Width
- Float_Height
- Initially_Floating
- Initially_Collapsed
- Floatable
- Collapsible
Pane_Definition_Array
type Pane_Definition_Array is
array (Integer range <>) of Pane_Definition;
Pane_Id
type Pane_Id is (<>);
Pane_Placement
type Pane_Placement is (Docked, Floating);
Enumeration literals
- Docked
- Floating
Pane_Region
function Pane_Region
(Item : Presentation; Id : Pane_Id)
return Flyology_TUI.Geometry.Rectangle
Parameters
- Item
- Id
Return value
Placement
function Placement
(Item : Model; Id : Pane_Id) return Pane_Placement
Parameters
- Item
- Id
Return value
Present
function Present
(Item : Model;
Children : Surface_Array;
Appearance : Dock_Workspaces.Appearance) return Presentation
Present returns one immutable frame shared by render and mouse routing. The center and every child region are exact clipped regions. Floating windows are composed in z-order after docks. Child body events are not consumed by Handle.
Parameters
- Item
- Children
- Appearance
Return value
Present
function Present
(Item : Model;
Children : Surface_Array;
Appearance : Dock_Workspaces.Appearance;
Skin : Flyology_TUI.Skins.Skin) return Presentation
Parameters
- Item
- Children
- Appearance
- Skin
Return value
Present
function Present
(Item : Model;
Children : Surface_Array;
Skin : Flyology_TUI.Skins.Skin) return Presentation
Parameters
- Item
- Children
- Skin
Return value
Present
function Present
(Item : Model;
Children : Surface_Array;
Theme : Flyology_TUI.Themes.Theme) return Presentation
Parameters
- Item
- Children
- Theme
Return value
Presentation
type Presentation is private;
Resize
procedure Resize
(Item : in out Model;
Width, Height : Natural)
Resize constrains floating windows and cancels semantic movement while preserving an already-acquired capture until matching left release.
Parameters
- Item
- Width
- Height
Set_Enabled
procedure Set_Enabled (Item : in out Model; Enabled : Boolean)
Parameters
- Item
- Enabled
Side
function Side (Item : Model; Id : Pane_Id) return Dock_Side
Parameters
- Item
- Id
Return value
Surface_Array
type Surface_Array is
array (Pane_Id range <>) of Flyology_TUI.Surfaces.Surface;
Toggle_Collapsed
procedure Toggle_Collapsed (Item : in out Model; Id : Pane_Id)
Parameters
- Item
- Id
Width
function Width (Item : Model) return Natural
Parameters
- Item