with Ada.Strings.Wide_Wide_Unbounded; use Ada.Strings.Wide_Wide_Unbounded; private with Sf.Window.Keyboard; private with Sf.System.Vector2; private with Sf.Graphics.Color; private with GrafikRecordKonstanten; private with InteraktionAuswahl; private with MenueKonstanten; private with TastenbelegungDatentypen; package SteuerungsmenueGrafik is pragma Elaborate_Body; procedure Steuerungsmenü (AuswahlExtern : in Integer); private UnbekannteTaste : constant Positive := 191; ArrayAnfang : Positive; ArrayEnde : Positive; AktuelleBelegung : Sf.Window.Keyboard.sfKeyCode; Text : Unbounded_Wide_Wide_String; ViewflächeAufteilung : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView; ViewflächeBelegung : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView; Textposition : Sf.System.Vector2.sfVector2f; Farbe : Sf.Graphics.Color.sfColor; type AufteilungArray is array (InteraktionAuswahl.PositionenSteuerungsaufteilung'Range) of Positive; Aufteilung : constant AufteilungArray := ( 1 => MenueKonstanten.AllgemeineSteuerung, 2 => MenueKonstanten.Einheitensteuerung, 3 => MenueKonstanten.Stadtsteuerung ); function Steuerungsaufteilung (AuswahlExtern : in Integer; WelcheSteuerungExtern : in TastenbelegungDatentypen.Tastenbelegungskategorie_Enum) return Sf.System.Vector2.sfVector2f with Post => ( Steuerungsaufteilung'Result.x >= 0.00 and Steuerungsaufteilung'Result.y >= 0.00 ); function Steuerung (AuswahlExtern : in Integer; WelcheSteuerungExtern : in TastenbelegungDatentypen.Tastenbelegungskategorie_Enum; MaximaleTextbreiteExtern : in Float) return Float with Pre => ( MaximaleTextbreiteExtern >= 0.00 ), Post => ( Steuerung'Result >= 0.00 ); function TextFestlegen (WelcheSteuerungExtern : in TastenbelegungDatentypen.Tastenbelegungskategorie_Enum; WelcheZeileExtern : in Positive) return Wide_Wide_String; end SteuerungsmenueGrafik;