From 446989277ad276e9820e54ea1fb4ed550b93e998 Mon Sep 17 00:00:00 2001
From: Jedidiah Barber <contact@jedbarber.id.au>
Date: Mon, 10 Feb 2025 22:50:09 +1300
Subject: Filled holes in Enumerations and FLTK (Screen) APIs

---
 spec/fltk-images.ads |  2 --
 spec/fltk-screen.ads | 10 +++++++++
 spec/fltk.ads        | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 2 deletions(-)

(limited to 'spec')

diff --git a/spec/fltk-images.ads b/spec/fltk-images.ads
index 165c203..6afb788 100644
--- a/spec/fltk-images.ads
+++ b/spec/fltk-images.ads
@@ -14,8 +14,6 @@ package FLTK.Images is
 
     type Scaling_Kind is (Nearest, Bilinear);
 
-    type Blend is new Float range 0.0 .. 1.0;
-
 
     No_Image_Error, File_Access_Error, Format_Error : exception;
 
diff --git a/spec/fltk-screen.ads b/spec/fltk-screen.ads
index b7d5521..8a26d9c 100644
--- a/spec/fltk-screen.ads
+++ b/spec/fltk-screen.ads
@@ -7,6 +7,14 @@
 package FLTK.Screen is
 
 
+    --  Environment  --
+
+    procedure Set_Display_Var
+           (Value : in String);
+
+
+
+
     --  Basic Dimensions  --
 
     function Get_X
@@ -82,6 +90,8 @@ package FLTK.Screen is
 private
 
 
+    pragma Inline (Set_Display_Var);
+
     pragma Inline (Get_X);
     pragma Inline (Get_Y);
     pragma Inline (Get_W);
diff --git a/spec/fltk.ads b/spec/fltk.ads
index db75720..24e68fe 100644
--- a/spec/fltk.ads
+++ b/spec/fltk.ads
@@ -46,14 +46,53 @@ package FLTK is
     type Color_Component is mod 256;
     type Color_Component_Array is array (Positive range <>) of aliased Color_Component;
 
+    subtype Blend is Float range 0.0 .. 1.0;
+
+    function RGB_Color
+           (Light : in Greyscale)
+        return Color;
+
+    function RGB_Color
+           (Light : in Color_Component)
+        return Color;
+
     function RGB_Color
            (R, G, B : in Color_Component)
         return Color;
 
+    function Color_Cube
+           (R, G, B : in Color_Component)
+        return Color;
+
+    function Grey_Ramp
+           (Light : in Greyscale)
+        return Color;
+
+    function Grey_Ramp
+           (Light : in Color_Component)
+        return Color;
+
+    function Darker
+           (Tone : in Color)
+        return Color;
+
+    function Lighter
+           (Tone : in Color)
+        return Color;
+
     function Contrast
            (Fore, Back : in Color)
         return Color;
 
+    function Inactive
+           (Tone : in Color)
+        return Color;
+
+    function Color_Average
+           (Tone1, Tone2 : in Color;
+            Weight       : in Blend := 0.5)
+        return Color;
+
     --  Examples of RGB colors without the above function
     --  The lowest byte has to be 00 for the color to be RGB
     RGB_Red_Color   : constant Color := 16#ff000000#;
@@ -282,6 +321,18 @@ package FLTK is
         Gleam_Round_Down_Box,
         Free_Box);
 
+    function Filled
+           (Box : in Box_Kind)
+        return Box_Kind;
+
+    function Frame
+           (Box : in Box_Kind)
+        return Box_Kind;
+
+    function Down
+           (Box : in Box_Kind)
+        return Box_Kind;
+
 
 
 
@@ -662,7 +713,14 @@ private
 
 
     pragma Inline (RGB_Color);
+    pragma Inline (Color_Cube);
+    pragma Inline (Contrast);
+    pragma Inline (Grey_Ramp);
+    pragma Inline (Darker);
+    pragma Inline (Lighter);
     pragma Inline (Contrast);
+    pragma Inline (Inactive);
+    pragma Inline (Color_Average);
 
     pragma Inline (ABI_Check);
     pragma Inline (ABI_Version);
-- 
cgit