summaryrefslogtreecommitdiff
path: root/spec/fltk-widgets-groups-scrolls.ads
diff options
context:
space:
mode:
Diffstat (limited to 'spec/fltk-widgets-groups-scrolls.ads')
-rw-r--r--spec/fltk-widgets-groups-scrolls.ads151
1 files changed, 151 insertions, 0 deletions
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;
+
+