From b4438b2fbe895694be98e6e8426103deefc51448 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Tue, 21 Jan 2025 21:04:54 +1300 Subject: Split public API and private implementation files into different directories --- spec/fltk-widgets-groups-scrolls.ads | 151 +++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 spec/fltk-widgets-groups-scrolls.ads (limited to 'spec/fltk-widgets-groups-scrolls.ads') diff --git a/spec/fltk-widgets-groups-scrolls.ads b/spec/fltk-widgets-groups-scrolls.ads new file mode 100644 index 0000000..f4cbad0 --- /dev/null +++ b/spec/fltk-widgets-groups-scrolls.ads @@ -0,0 +1,151 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + + +with + + FLTK.Widgets.Valuators.Sliders.Scrollbars; + + +package FLTK.Widgets.Groups.Scrolls is + + + type Scroll is new Group with private; + + type Scroll_Reference (Data : not null access Scroll'Class) is limited null record + with Implicit_Dereference => Data; + + type Scroll_Kind is + (Horizontal, + Vertical, + Both, + Always_On, + Horizontal_Always, + Vertical_Always, + Both_Always); + + + + + package Forge is + + function Create + (X, Y, W, H : in Integer; + Text : in String := "") + return Scroll; + + function Create + (Parent : in out Group'Class; + X, Y, W, H : in Integer; + Text : in String := "") + return Scroll; + + end Forge; + + + + + function H_Bar + (This : in out Scroll) + return Valuators.Sliders.Scrollbars.Scrollbar_Reference; + + function V_Bar + (This : in out Scroll) + return Valuators.Sliders.Scrollbars.Scrollbar_Reference; + + + + + procedure Clear + (This : in out Scroll); + + + + + procedure Scroll_To + (This : in out Scroll; + X, Y : in Integer); + + -- These two functions are far too similar in name and + -- function to the Get_X and Get_Y for Widgets. + function Get_Scroll_X + (This : in Scroll) + return Integer; + + function Get_Scroll_Y + (This : in Scroll) + return Integer; + + + + + function Get_Scrollbar_Size + (This : in Scroll) + return Integer; + + procedure Set_Scrollbar_Size + (This : in out Scroll; + To : in Integer); + + function Get_Kind + (This : in Scroll) + return Scroll_Kind; + + procedure Set_Kind + (This : in out Scroll; + Mode : in Scroll_Kind); + + + + + procedure Draw + (This : in out Scroll); + + function Handle + (This : in out Scroll; + Event : in Event_Kind) + return Event_Outcome; + + +private + + + type Scroll is new Group with record + Horizon, Vertigo : aliased Valuators.Sliders.Scrollbars.Scrollbar; + end record; + + overriding procedure Initialize + (This : in out Scroll); + + overriding procedure Finalize + (This : in out Scroll); + + procedure Extra_Init + (This : in out Scroll; + X, Y, W, H : in Integer; + Text : in String); + + procedure Extra_Final + (This : in out Scroll); + + + pragma Inline (Clear); + + pragma Inline (Scroll_To); + pragma Inline (Get_Scroll_X); + pragma Inline (Get_Scroll_Y); + + pragma Inline (Get_Scrollbar_Size); + pragma Inline (Set_Scrollbar_Size); + pragma Inline (Get_Kind); + pragma Inline (Set_Kind); + + pragma Inline (Draw); + pragma Inline (Handle); + + +end FLTK.Widgets.Groups.Scrolls; + + -- cgit