← All compilation units

Flyology_TUI.Components.Menubars

Description

"="

function "=" (Left, Right : Menu_Id) return Boolean
Parameters
Left
Right
Left
Right
Return value

"="

function "=" (Left, Right : Menu_Id) return Boolean
Parameters
Left
Right
Left
Right
Return value

Action

function Action
  (Id : Item_Id; Menu : Menu_Id; Enabled : Boolean := True)
   return Item_Definition
Parameters
Id
Menu
Enabled
Return value

Activated_Item

function Activated_Item (Item : Update_Result) return Item_Id
Parameters
Item
Return value

Activated_Menu

function Activated_Menu (Item : Update_Result) return Menu_Id
Parameters
Item
Return value

Appearance

type Appearance is record
   Bar         : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Menu        : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Focused     : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Highlighted : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Disabled    : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Separator   : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Shortcut    : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
   Marker      : Flyology_TUI.Styles.Style := Flyology_TUI.Styles.Default;
end record;
Record fields
Bar
Menu
Focused
Highlighted
Disabled
Separator
Shortcut
Marker

Bar_Region

function Bar_Region
  (Item : Presentation) return Flyology_TUI.Geometry.Rectangle
Parameters
Item
Return value

Check

function Check
  (Id      : Item_Id;
   Menu    : Menu_Id;
   Checked : Boolean := False;
   Enabled : Boolean := True) return Item_Definition
Parameters
Id
Menu
Checked
Enabled
Return value

Checked_Value

function Checked_Value (Item : Update_Result) return Boolean
Parameters
Item
Return value

Close

procedure Close (Item : in out Model)
Parameters
Item

Contains_Item

function Contains_Item (Item : Model; Id : Item_Id) return Boolean
Parameters
Item
Id
Return value

Contains_Menu

function Contains_Menu (Item : Model; Id : Menu_Id) return Boolean
Parameters
Item
Id
Return value

Create

function Create
  (Menus : Menu_Array; Items : Item_Array; Enabled : Boolean := True)
   return Model
Parameters
Menus
Items
Enabled
Return value

Dismiss

function Dismiss (Item : in out Model) return Update_Result
Parameters
Item
Return value

Focused_Menu

function Focused_Menu (Item : Model) return Menu_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; Event : Flyology_TUI.Events.Terminal_Event)
   return Update_Result
Parameters
Item
Event
Return value

Handle

function Handle
  (Item   : in out Model;
   Event  : Flyology_TUI.Mouse.Local_Event;
   Layout : Presentation) return Update_Result

Event coordinates are local to Presentation.Frame. Any presentation predating a render- or routing-affecting mutation is rejected. A matching captured left release always relinquishes application capture; it activates only when no mutation invalidated the original press.

Parameters
Item
Event
Layout
Return value

Has_Focused_Menu

function Has_Focused_Menu (Item : Model) return Boolean
Parameters
Item
Return value

Has_Highlighted_Item

function Has_Highlighted_Item (Item : Model) return Boolean
Parameters
Item
Return value

Has_Item_Region

function Has_Item_Region
  (Item : Presentation; Id : Item_Id) return Boolean
Parameters
Item
Id
Return value

Has_Menu_Region

function Has_Menu_Region
  (Item : Presentation; Id : Menu_Id) return Boolean
Parameters
Item
Id
Return value

Highlighted_Item

function Highlighted_Item (Item : Model) return Item_Id
Parameters
Item
Return value

Interaction

function Interaction
  (Item : Update_Result)
   return Flyology_TUI.Components.Interactions.Update_Result
Parameters
Item
Return value

Is_Checked

function Is_Checked (Item : Model; Id : Item_Id) return Boolean
Parameters
Item
Id
Return value

Is_Enabled

function Is_Enabled (Item : Model) return Boolean
Parameters
Item
Return value

Is_Open

function Is_Open (Item : Model) return Boolean
Parameters
Item
Return value

Item_Array

type Item_Array is array (Positive range <>) of Item_Definition;

Item_Count

function Item_Count (Item : Model) return Natural
Parameters
Item
Return value

Item_Definition

type Item_Definition (Kind : Item_Kind := Action_Item) is record
   Id      : Item_Id;
   Menu    : Menu_Id;
   Enabled : Boolean := True;
   case Kind is
      when Action_Item | Separator_Item => null;
      when Check_Item =>
         Checked : Boolean := False;
      when Radio_Item =>
         Group    : Item_Id;
         Selected : Boolean := False;
      when Submenu_Item =>
         Child : Menu_Id;
   end case;
end record;
Record fields
Kind
Id
Menu
Enabled
Checked
Group
Selected
Child

Item_Id

type Item_Id is private;

Item_Kind

type Item_Kind is
  (Action_Item, Check_Item, Radio_Item, Submenu_Item, Separator_Item);
Enumeration literals
Action_Item
Check_Item
Radio_Item
Submenu_Item
Separator_Item

Item_Label

function Item_Label (Id : Item_Id) return Wide_Wide_String
Parameters
Id
Return value

Item_Mnemonic

function Item_Mnemonic
(Id : Item_Id) return Wide_Wide_Character
Parameters
Id
Return value

Item_Region

function Item_Region
  (Item : Presentation; Id : Item_Id)
   return Flyology_TUI.Geometry.Rectangle
Parameters
Item
Id
Return value

Maximum_Depth

Maximum_Depth : Positive;

Maximum_Items

Maximum_Items : Positive;

Maximum_Menus

Maximum_Menus : Positive;

Menu_Array

type Menu_Array is array (Positive range <>) of Menu_Definition;

Menu_Count

function Menu_Count (Item : Model) return Natural
Parameters
Item
Return value

Menu_Definition

type Menu_Definition is record
   Id        : Menu_Id;
   Top_Level : Boolean := True;
   Enabled   : Boolean := True;
end record;
Record fields
Id
Top_Level
Enabled

Menu_Id

type Menu_Id is private;

Menu_Label

function Menu_Label (Id : Menu_Id) return Wide_Wide_String
Parameters
Id
Return value

Menu_Mnemonic

function Menu_Mnemonic
(Id : Menu_Id) return Wide_Wide_Character
Parameters
Id
Return value

Menu_Region

function Menu_Region
  (Item : Presentation; Id : Menu_Id)
   return Flyology_TUI.Geometry.Rectangle
Parameters
Item
Id
Return value

Model

type Model is tagged private;

Open_Depth

function Open_Depth (Item : Model) return Natural
Parameters
Item
Return value

Open_Menu

procedure Open_Menu (Item : in out Model; Id : Menu_Id)
Parameters
Item
Id

Present

function Present
  (Item      : Model;
   Width     : Natural;
   Height    : Natural;
   X         : Integer;
   Y         : Integer;
   Look      : Appearance;
   Has_Focus : Boolean := False) return Presentation

Width and Height are the complete overlay viewport. X and Y are signed menubar origins inside it. Frame and all queried regions are clipped to that viewport; Presentation retains no theme or callback.

Parameters
Item
Width
Height
X
Y
Look
Has_Focus
Return value

Present

function Present
  (Item      : Model;
   Width     : Natural;
   Height    : Natural;
   X         : Integer;
   Y         : Integer;
   Theme     : Flyology_TUI.Themes.Theme;
   Has_Focus : Boolean := False) return Presentation
Parameters
Item
Width
Height
X
Y
Theme
Has_Focus
Return value

Presentation

type Presentation is private;

Radio

function Radio
  (Id       : Item_Id;
   Menu     : Menu_Id;
   Group    : Item_Id;
   Selected : Boolean := False;
   Enabled  : Boolean := True) return Item_Definition
Parameters
Id
Menu
Group
Selected
Enabled
Return value

Radio_Group

function Radio_Group (Item : Update_Result) return Item_Id
Parameters
Item
Return value

Render

function Render
  (Item      : Model;
   Width     : Natural;
   Height    : Natural;
   X         : Integer;
   Y         : Integer;
   Look      : Appearance;
   Has_Focus : Boolean := False)
   return Flyology_TUI.Surfaces.Surface
Parameters
Item
Width
Height
X
Y
Look
Has_Focus
Return value

Render

function Render
  (Item      : Model;
   Width     : Natural;
   Height    : Natural;
   X         : Integer;
   Y         : Integer;
   Theme     : Flyology_TUI.Themes.Theme;
   Has_Focus : Boolean := False)
   return Flyology_TUI.Surfaces.Surface
Parameters
Item
Width
Height
X
Y
Theme
Has_Focus
Return value

Result_Kind

type Result_Kind is
  (No_Result, Action_Activated, Check_Changed, Radio_Changed);
Enumeration literals
No_Result
Action_Activated
Check_Changed
Radio_Changed

Separator

function Separator (Id : Item_Id; Menu : Menu_Id) return Item_Definition
Parameters
Id
Menu
Return value

Set_Checked

procedure Set_Checked
  (Item : in out Model; Id : Item_Id; Checked : Boolean := True)
Parameters
Item
Id
Checked

Set_Content

procedure Set_Content
  (Item : in out Model; Menus : Menu_Array; Items : Item_Array)

Replacement validates capacities, ids, references, radio selections, cycles, and Maximum_Depth before mutation. Mutable enabled, check/radio, focus, and open-path state follow stable ids. Pending activation is cancelled while capture ownership survives until the matching left-button release.

Parameters
Item
Menus
Items

Set_Enabled

procedure Set_Enabled (Item : in out Model; Enabled : Boolean)
Parameters
Item
Enabled

Set_Item_Enabled

procedure Set_Item_Enabled
  (Item : in out Model; Id : Item_Id; Enabled : Boolean := True)
Parameters
Item
Id
Enabled

Set_Menu_Enabled

procedure Set_Menu_Enabled
  (Item : in out Model; Id : Menu_Id; Enabled : Boolean := True)
Parameters
Item
Id
Enabled

Shortcut_Label

function Shortcut_Label (Id : Item_Id) return Wide_Wide_String
Parameters
Id
Return value

Submenu

function Submenu
  (Id      : Item_Id;
   Menu    : Menu_Id;
   Child   : Menu_Id;
   Enabled : Boolean := True) return Item_Definition
Parameters
Id
Menu
Child
Enabled
Return value

Update_Result

type Update_Result (Kind : Result_Kind := No_Result) is private;
Record fields
Kind