aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-widgets-groups.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-widgets-groups.adb')
-rw-r--r--src/fltk-widgets-groups.adb625
1 files changed, 0 insertions, 625 deletions
diff --git a/src/fltk-widgets-groups.adb b/src/fltk-widgets-groups.adb
deleted file mode 100644
index 2c21533..0000000
--- a/src/fltk-widgets-groups.adb
+++ /dev/null
@@ -1,625 +0,0 @@
-
-
--- Programmed by Jedidiah Barber
--- Released into the public domain
-
-
-with
-
- Ada.Assertions,
- Interfaces.C;
-
-use type
-
- Interfaces.C.int;
-
-
-package body FLTK.Widgets.Groups is
-
-
- package Chk renames Ada.Assertions;
-
-
-
-
- ------------------------
- -- Functions From C --
- ------------------------
-
- function new_fl_group
- (X, Y, W, H : in Interfaces.C.int;
- Text : in Interfaces.C.char_array)
- return Storage.Integer_Address;
- pragma Import (C, new_fl_group, "new_fl_group");
- pragma Inline (new_fl_group);
-
- procedure free_fl_group
- (G : in Storage.Integer_Address);
- pragma Import (C, free_fl_group, "free_fl_group");
- pragma Inline (free_fl_group);
-
-
-
-
- procedure fl_group_add
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_add, "fl_group_add");
- pragma Inline (fl_group_add);
-
- procedure fl_group_insert
- (G, W : in Storage.Integer_Address;
- P : in Interfaces.C.int);
- pragma Import (C, fl_group_insert, "fl_group_insert");
- pragma Inline (fl_group_insert);
-
- procedure fl_group_insert2
- (G, W, B : in Storage.Integer_Address);
- pragma Import (C, fl_group_insert2, "fl_group_insert2");
- pragma Inline (fl_group_insert2);
-
- procedure fl_group_remove
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_remove, "fl_group_remove");
- pragma Inline (fl_group_remove);
-
- procedure fl_group_remove2
- (G : in Storage.Integer_Address;
- P : in Interfaces.C.int);
- pragma Import (C, fl_group_remove2, "fl_group_remove2");
- pragma Inline (fl_group_remove2);
-
-
-
-
- function fl_group_child
- (G : in Storage.Integer_Address;
- I : in Interfaces.C.int)
- return Storage.Integer_Address;
- pragma Import (C, fl_group_child, "fl_group_child");
- pragma Inline (fl_group_child);
-
- function fl_group_find
- (G, W : in Storage.Integer_Address)
- return Interfaces.C.int;
- pragma Import (C, fl_group_find, "fl_group_find");
- pragma Inline (fl_group_find);
-
- function fl_group_children
- (G : in Storage.Integer_Address)
- return Interfaces.C.int;
- pragma Import (C, fl_group_children, "fl_group_children");
- pragma Inline (fl_group_children);
-
-
-
-
- function fl_group_get_clip_children
- (G : in Storage.Integer_Address)
- return Interfaces.C.unsigned;
- pragma Import (C, fl_group_get_clip_children, "fl_group_get_clip_children");
- pragma Inline (fl_group_get_clip_children);
-
- procedure fl_group_set_clip_children
- (G : in Storage.Integer_Address;
- C : in Interfaces.C.int);
- pragma Import (C, fl_group_set_clip_children, "fl_group_set_clip_children");
- pragma Inline (fl_group_set_clip_children);
-
-
-
-
- procedure fl_group_add_resizable
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_add_resizable, "fl_group_add_resizable");
- pragma Inline (fl_group_add_resizable);
-
- function fl_group_get_resizable
- (G : in Storage.Integer_Address)
- return Storage.Integer_Address;
- pragma Import (C, fl_group_get_resizable, "fl_group_get_resizable");
- pragma Inline (fl_group_get_resizable);
-
- procedure fl_group_set_resizable
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_set_resizable, "fl_group_set_resizable");
- pragma Inline (fl_group_set_resizable);
-
- procedure fl_group_init_sizes
- (G : in Storage.Integer_Address);
- pragma Import (C, fl_group_init_sizes, "fl_group_init_sizes");
- pragma Inline (fl_group_init_sizes);
-
- procedure fl_group_resize
- (G : in Storage.Integer_Address;
- X, Y, W, H : in Interfaces.C.int);
- pragma Import (C, fl_group_resize, "fl_group_resize");
- pragma Inline (fl_group_resize);
-
-
-
-
- function fl_group_get_current
- return Storage.Integer_Address;
- pragma Import (C, fl_group_get_current, "fl_group_get_current");
- pragma Inline (fl_group_get_current);
-
- procedure fl_group_set_current
- (G : in Storage.Integer_Address);
- pragma Import (C, fl_group_set_current, "fl_group_set_current");
- pragma Inline (fl_group_set_current);
-
- procedure fl_group_begin
- (G : in Storage.Integer_Address);
- pragma Import (C, fl_group_begin, "fl_group_begin");
- pragma Inline (fl_group_begin);
-
- procedure fl_group_end
- (G : in Storage.Integer_Address);
- pragma Import (C, fl_group_end, "fl_group_end");
- pragma Inline (fl_group_end);
-
-
-
-
- procedure fl_group_draw
- (W : in Storage.Integer_Address);
- pragma Import (C, fl_group_draw, "fl_group_draw");
- pragma Inline (fl_group_draw);
-
- procedure fl_group_draw_child
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_draw_child, "fl_group_draw_child");
- pragma Inline (fl_group_draw_child);
-
- procedure fl_group_draw_children
- (G : in Storage.Integer_Address);
- pragma Import (C, fl_group_draw_children, "fl_group_draw_children");
- pragma Inline (fl_group_draw_children);
-
- procedure fl_group_draw_outside_label
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_draw_outside_label, "fl_group_draw_outside_label");
- pragma Inline (fl_group_draw_outside_label);
-
- procedure fl_group_update_child
- (G, W : in Storage.Integer_Address);
- pragma Import (C, fl_group_update_child, "fl_group_update_child");
- pragma Inline (fl_group_update_child);
-
- function fl_group_handle
- (W : in Storage.Integer_Address;
- E : in Interfaces.C.int)
- return Interfaces.C.int;
- pragma Import (C, fl_group_handle, "fl_group_handle");
- pragma Inline (fl_group_handle);
-
-
-
-
- -------------------
- -- Destructors --
- -------------------
-
- procedure Extra_Final
- (This : in out Group) is
- begin
- This.Clear;
- Extra_Final (Widget (This));
- end Extra_Final;
-
-
- procedure Finalize
- (This : in out Group) is
- begin
- Extra_Final (This);
- if This.Void_Ptr /= Null_Pointer and This.Needs_Dealloc then
- free_fl_group (This.Void_Ptr);
- This.Void_Ptr := Null_Pointer;
- end if;
- end Finalize;
-
-
-
-
- --------------------
- -- Constructors --
- --------------------
-
- procedure Extra_Init
- (This : in out Group;
- X, Y, W, H : in Integer;
- Text : in String) is
- begin
- fl_group_end (This.Void_Ptr);
- Extra_Init (Widget (This), X, Y, W, H, Text);
- end Extra_Init;
-
-
- procedure Initialize
- (This : in out Group) is
- begin
- This.Draw_Ptr := fl_group_draw'Address;
- This.Handle_Ptr := fl_group_handle'Address;
- end Initialize;
-
-
- package body Forge is
-
- function Create
- (X, Y, W, H : in Integer;
- Text : in String := "")
- return Group is
- begin
- return This : Group do
- This.Void_Ptr := new_fl_group
- (Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H),
- Interfaces.C.To_C (Text));
- Extra_Init (This, X, Y, W, H, Text);
- end return;
- end Create;
-
- end Forge;
-
-
-
-
- -----------------------
- -- API Subprograms --
- -----------------------
-
- procedure Add
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_add (This.Void_Ptr, Item.Void_Ptr);
- end Add;
-
-
- procedure Insert
- (This : in out Group;
- Item : in out Widget'Class;
- Place : in Index) is
- begin
- fl_group_insert
- (This.Void_Ptr,
- Item.Void_Ptr,
- Interfaces.C.int (Place) - 1);
- end Insert;
-
-
- procedure Insert
- (This : in out Group;
- Item : in out Widget'Class;
- Before : in Widget'Class) is
- begin
- fl_group_insert2
- (This.Void_Ptr,
- Item.Void_Ptr,
- Before.Void_Ptr);
- end Insert;
-
-
- procedure Remove
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_remove (This.Void_Ptr, Item.Void_Ptr);
- end Remove;
-
-
- procedure Remove
- (This : in out Group;
- Place : in Index) is
- begin
- fl_group_remove2 (This.Void_Ptr, Interfaces.C.int (Place) - 1);
- end Remove;
-
-
- procedure Clear
- (This : in out Group) is
- begin
- -- We don't use the actual clear method here because
- -- that would delete the children from memory.
- for I in reverse 1 .. This.Number_Of_Children loop
- This.Remove (Index (I));
- end loop;
- end Clear;
-
-
-
-
- function Has_Child
- (This : in Group;
- Place : in Index)
- return Boolean is
- begin
- return Place in 1 .. This.Number_Of_Children;
- end Has_Child;
-
-
- function Has_Child
- (Place : in Cursor)
- return Boolean is
- begin
- return Place.My_Container.Has_Child (Place.My_Index);
- end Has_Child;
-
-
- function Child
- (This : in Group;
- Place : in Index)
- return Widget_Reference
- is
- Widget_Ptr : Storage.Integer_Address :=
- fl_group_child (This.Void_Ptr, Interfaces.C.int (Place) - 1);
- Actual_Widget : access Widget'Class;
- begin
- Widget_Ptr := fl_widget_get_user_data (Widget_Ptr);
- pragma Assert (Widget_Ptr /= Null_Pointer);
- Actual_Widget := Widget_Convert.To_Pointer (Storage.To_Address (Widget_Ptr));
- return (Data => Actual_Widget);
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Child;
-
-
- function Child
- (This : in Group;
- Place : in Cursor)
- return Widget_Reference is
- begin
- return This.Child (Place.My_Index);
- end Child;
-
-
- function Find
- (This : in Group;
- Item : in out Widget'Class)
- return Extended_Index
- is
- Result : Interfaces.C.int := fl_group_find (This.Void_Ptr, Item.Void_Ptr);
- begin
- if Result = fl_group_children (This.Void_Ptr) then
- return No_Index;
- end if;
- return Extended_Index (Result + 1);
- end Find;
-
-
- function Number_Of_Children
- (This : in Group)
- return Natural is
- begin
- return Natural (fl_group_children (This.Void_Ptr));
- end Number_Of_Children;
-
-
-
-
- function Iterate
- (This : in Group)
- return Group_Iterators.Reversible_Iterator'Class is
- begin
- return It : Iterator := (My_Container => This'Unrestricted_Access);
- end Iterate;
-
-
- function First
- (Object : in Iterator)
- return Cursor is
- begin
- return Cu : Cursor :=
- (My_Container => Object.My_Container,
- My_Index => 1);
- end First;
-
-
- function Next
- (Object : in Iterator;
- Place : in Cursor)
- return Cursor is
- begin
- if Object.My_Container /= Place.My_Container then
- raise Program_Error;
- end if;
- return Cu : Cursor :=
- (My_Container => Place.My_Container,
- My_Index => Place.My_Index + 1);
- end Next;
-
-
- function Last
- (Object : in Iterator)
- return Cursor is
- begin
- return Cu : Cursor :=
- (My_Container => Object.My_Container,
- My_Index => Object.My_Container.Number_Of_Children);
- end Last;
-
-
- function Previous
- (Object : in Iterator;
- Place : in Cursor)
- return Cursor is
- begin
- if Object.My_Container /= Place.My_Container then
- raise Program_Error;
- end if;
- return Cu : Cursor :=
- (My_Container => Place.My_Container,
- My_Index => Place.My_Index - 1);
- end Previous;
-
-
-
-
- function Get_Clip_Mode
- (This : in Group)
- return Clip_Mode is
- begin
- return Clip_Mode'Val (fl_group_get_clip_children (This.Void_Ptr));
- exception
- when Constraint_Error => raise Internal_FLTK_Error;
- end Get_Clip_Mode;
-
-
- procedure Set_Clip_Mode
- (This : in out Group;
- Mode : in Clip_Mode := Clip) is
- begin
- fl_group_set_clip_children (This.Void_Ptr, Clip_Mode'Pos (Mode));
- end Set_Clip_Mode;
-
-
-
-
- procedure Add_Resizable
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_add_resizable (This.Void_Ptr, Item.Void_Ptr);
- end Add_Resizable;
-
-
- function Get_Resizable
- (This : in Group)
- return access Widget'Class
- is
- Widget_Ptr : Storage.Integer_Address := fl_group_get_resizable (This.Void_Ptr);
- Actual_Widget : access Widget'Class;
- begin
- if Widget_Ptr /= Null_Pointer then
- Widget_Ptr := fl_widget_get_user_data (Widget_Ptr);
- pragma Assert (Widget_Ptr /= Null_Pointer);
- Actual_Widget := Widget_Convert.To_Pointer (Storage.To_Address (Widget_Ptr));
- end if;
- return Actual_Widget;
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Get_Resizable;
-
-
- procedure Set_Resizable
- (This : in out Group;
- Item : in Widget'Class) is
- begin
- fl_group_set_resizable (This.Void_Ptr, Item.Void_Ptr);
- end Set_Resizable;
-
-
- procedure Reset_Sizes
- (This : in out Group) is
- begin
- fl_group_init_sizes (This.Void_Ptr);
- end Reset_Sizes;
-
-
- procedure Resize
- (This : in out Group;
- X, Y, W, H : in Integer) is
- begin
- fl_group_resize
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H));
- end Resize;
-
-
-
-
- function Get_Current
- return access Group'Class
- is
- Group_Ptr : Storage.Integer_Address := fl_group_get_current;
- Actual_Group : access Group'Class;
- begin
- if Group_Ptr /= Null_Pointer then
- Group_Ptr := fl_widget_get_user_data (Group_Ptr);
- pragma Assert (Group_Ptr /= Null_Pointer);
- Actual_Group := Group_Convert.To_Pointer (Storage.To_Address (Group_Ptr));
- end if;
- return Actual_Group;
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Get_Current;
-
-
- procedure Set_Current
- (To : in Group'Class) is
- begin
- fl_group_set_current (To.Void_Ptr);
- end Set_Current;
-
-
- procedure Begin_Current
- (This : in out Group) is
- begin
- fl_group_begin (This.Void_Ptr);
- end Begin_Current;
-
-
- procedure End_Current
- (This : in out Group) is
- begin
- fl_group_end (This.Void_Ptr);
- end End_Current;
-
-
-
-
- procedure Draw
- (This : in out Group) is
- begin
- Widget (This).Draw;
- end Draw;
-
-
- procedure Draw_Child
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_draw_child (This.Void_Ptr, Item.Void_Ptr);
- end Draw_Child;
-
-
- procedure Draw_Children
- (This : in out Group) is
- begin
- fl_group_draw_children (This.Void_Ptr);
- end Draw_Children;
-
-
- procedure Draw_Outside_Label
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_draw_outside_label (This.Void_Ptr, Item.Void_Ptr);
- end Draw_Outside_Label;
-
-
- procedure Update_Child
- (This : in out Group;
- Item : in out Widget'Class) is
- begin
- fl_group_update_child (This.Void_Ptr, Item.Void_Ptr);
- end Update_Child;
-
-
- function Handle
- (This : in out Group;
- Event : in Event_Kind)
- return Event_Outcome is
- begin
- return Widget (This).Handle (Event);
- end Handle;
-
-
-end FLTK.Widgets.Groups;
-
-