aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-widgets-menus.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-widgets-menus.adb')
-rw-r--r--src/fltk-widgets-menus.adb802
1 files changed, 0 insertions, 802 deletions
diff --git a/src/fltk-widgets-menus.adb b/src/fltk-widgets-menus.adb
deleted file mode 100644
index d2bf2ff..0000000
--- a/src/fltk-widgets-menus.adb
+++ /dev/null
@@ -1,802 +0,0 @@
-
-
-with
-
- Interfaces.C.Strings,
- Ada.Unchecked_Deallocation,
- System;
-
-use type
-
- System.Address,
- Interfaces.C.int,
- Interfaces.C.unsigned_long,
- Interfaces.C.Strings.chars_ptr;
-
-
-package body FLTK.Widgets.Menus is
-
-
- procedure menu_set_draw_hook
- (W, D : in System.Address);
- pragma Import (C, menu_set_draw_hook, "menu_set_draw_hook");
- pragma Inline (menu_set_draw_hook);
-
- procedure menu_set_handle_hook
- (W, H : in System.Address);
- pragma Import (C, menu_set_handle_hook, "menu_set_handle_hook");
- pragma Inline (menu_set_handle_hook);
-
-
-
-
- function new_fl_menu
- (X, Y, W, H : in Interfaces.C.int;
- Text : in Interfaces.C.char_array)
- return System.Address;
- pragma Import (C, new_fl_menu, "new_fl_menu");
- pragma Inline (new_fl_menu);
-
- procedure free_fl_menu
- (F : in System.Address);
- pragma Import (C, free_fl_menu, "free_fl_menu");
- pragma Inline (free_fl_menu);
-
-
-
-
- function fl_menu_add
- (M : in System.Address;
- T : in Interfaces.C.char_array;
- S : in Interfaces.C.unsigned_long;
- C, U : in System.Address;
- F : in Interfaces.C.unsigned_long)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_add, "fl_menu_add");
- pragma Inline (fl_menu_add);
-
- function fl_menu_insert
- (M : in System.Address;
- P : in Interfaces.C.int;
- T : in Interfaces.C.char_array;
- S : in Interfaces.C.unsigned_long;
- C, U : in System.Address;
- F : in Interfaces.C.unsigned_long)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_insert, "fl_menu_insert");
- pragma Inline (fl_menu_insert);
-
- procedure fl_menu_remove
- (M : in System.Address;
- P : in Interfaces.C.int);
- pragma Import (C, fl_menu_remove, "fl_menu_remove");
- pragma Inline (fl_menu_remove);
-
- procedure fl_menu_clear
- (M : in System.Address);
- pragma Import (C, fl_menu_clear, "fl_menu_clear");
- pragma Inline (fl_menu_clear);
-
-
-
-
- function fl_menu_get_item
- (M : in System.Address;
- I : in Interfaces.C.int)
- return System.Address;
- pragma Import (C, fl_menu_get_item, "fl_menu_get_item");
- pragma Inline (fl_menu_get_item);
-
- function fl_menu_find_item
- (M : in System.Address;
- T : in Interfaces.C.char_array)
- return System.Address;
- pragma Import (C, fl_menu_find_item, "fl_menu_find_item");
- pragma Inline (fl_menu_find_item);
-
- function fl_menu_find_item2
- (M, C : in System.Address)
- return System.Address;
- pragma Import (C, fl_menu_find_item2, "fl_menu_find_item2");
- pragma Inline (fl_menu_find_item2);
-
- function fl_menu_find_index
- (M : in System.Address;
- T : in Interfaces.C.char_array)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_find_index, "fl_menu_find_index");
- pragma Inline (fl_menu_find_index);
-
- function fl_menu_find_index2
- (M, I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_find_index2, "fl_menu_find_index2");
- pragma Inline (fl_menu_find_index2);
-
- function fl_menu_find_index3
- (M, C : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_find_index3, "fl_menu_find_index3");
- pragma Inline (fl_menu_find_index3);
-
- function fl_menu_size
- (M : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_size, "fl_menu_size");
- pragma Inline (fl_menu_size);
-
-
-
-
- function fl_menu_mvalue
- (M : in System.Address)
- return System.Address;
- pragma Import (C, fl_menu_mvalue, "fl_menu_mvalue");
- pragma Inline (fl_menu_mvalue);
-
- function fl_menu_text
- (M : in System.Address)
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_menu_text, "fl_menu_text");
- pragma Inline (fl_menu_text);
-
- function fl_menu_value
- (M : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_value, "fl_menu_value");
- pragma Inline (fl_menu_value);
-
- function fl_menu_set_value
- (M : in System.Address;
- I : in Interfaces.C.int)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_set_value, "fl_menu_set_value");
- pragma Inline (fl_menu_set_value);
-
- function fl_menu_set_value2
- (M, I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_set_value2, "fl_menu_set_value2");
- pragma Inline (fl_menu_set_value2);
-
-
-
-
- function fl_menu_get_textcolor
- (M : in System.Address)
- return Interfaces.C.unsigned;
- pragma Import (C, fl_menu_get_textcolor, "fl_menu_get_textcolor");
- pragma Inline (fl_menu_get_textcolor);
-
- procedure fl_menu_set_textcolor
- (M : in System.Address;
- C : in Interfaces.C.unsigned);
- pragma Import (C, fl_menu_set_textcolor, "fl_menu_set_textcolor");
- pragma Inline (fl_menu_set_textcolor);
-
- function fl_menu_get_textfont
- (M : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_get_textfont, "fl_menu_get_textfont");
- pragma Inline (fl_menu_get_textfont);
-
- procedure fl_menu_set_textfont
- (M : in System.Address;
- F : in Interfaces.C.int);
- pragma Import (C, fl_menu_set_textfont, "fl_menu_set_textfont");
- pragma Inline (fl_menu_set_textfont);
-
- function fl_menu_get_textsize
- (M : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_get_textsize, "fl_menu_get_textsize");
- pragma Inline (fl_menu_get_textsize);
-
- procedure fl_menu_set_textsize
- (M : in System.Address;
- S : in Interfaces.C.int);
- pragma Import (C, fl_menu_set_textsize, "fl_menu_set_textsize");
- pragma Inline (fl_menu_set_textsize);
-
-
-
-
- function fl_menu_get_down_box
- (M : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_get_down_box, "fl_menu_get_down_box");
- pragma Inline (fl_menu_get_down_box);
-
- procedure fl_menu_set_down_box
- (M : in System.Address;
- T : in Interfaces.C.int);
- pragma Import (C, fl_menu_set_down_box, "fl_menu_set_down_box");
- pragma Inline (fl_menu_set_down_box);
-
- procedure fl_menu_global
- (M : in System.Address);
- pragma Import (C, fl_menu_global, "fl_menu_global");
- pragma Inline (fl_menu_global);
-
- function fl_menu_measure
- (M : in System.Address;
- I : in Interfaces.C.int;
- H : out Interfaces.C.int)
- return Interfaces.C.int;
- pragma Import (C, fl_menu_measure, "fl_menu_measure");
- pragma Inline (fl_menu_measure);
-
-
-
-
- function fl_menu_popup
- (M : in System.Address;
- X, Y : in Interfaces.C.int;
- T : in Interfaces.C.char_array;
- N : in Interfaces.C.int)
- return System.Address;
- pragma Import (C, fl_menu_popup, "fl_menu_popup");
- pragma Inline (fl_menu_popup);
-
- function fl_menu_pulldown
- (M : in System.Address;
- X, Y, W, H : in Interfaces.C.int;
- N : in Interfaces.C.int)
- return System.Address;
- pragma Import (C, fl_menu_pulldown, "fl_menu_pulldown");
- pragma Inline (fl_menu_pulldown);
-
-
-
-
- procedure fl_menu_draw_item
- (M : in System.Address;
- I : in Interfaces.C.int;
- X, Y, W, H : in Interfaces.C.int;
- S : in Interfaces.C.int);
- pragma Import (C, fl_menu_draw_item, "fl_menu_draw_item");
- pragma Inline (fl_menu_draw_item);
-
-
-
-
- procedure Item_Hook
- (M, U : in System.Address)
- is
- Ada_Widget : access Widget'Class :=
- Widget_Convert.To_Pointer (fl_widget_get_user_data (M));
- Action : Widget_Callback := Callback_Convert.To_Pointer (U);
- begin
- Action.all (Ada_Widget.all);
- end Item_Hook;
-
-
-
-
- procedure Free_Item is new Ada.Unchecked_Deallocation
- (Object => FLTK.Menu_Items.Menu_Item, Name => Item_Access);
-
-
-
-
- procedure Finalize
- (This : in out Menu) is
- begin
- if This.Void_Ptr /= System.Null_Address and then
- This in Menu'Class
- then
- for Item of This.My_Items loop
- Free_Item (Item);
- end loop;
- free_fl_menu (This.Void_Ptr);
- This.Void_Ptr := System.Null_Address;
- end if;
- Finalize (Widget (This));
- end Finalize;
-
-
-
-
- package body Forge is
-
- function Create
- (X, Y, W, H : in Integer;
- Text : in String := "")
- return Menu is
- begin
- return This : Menu do
- This.Void_Ptr := new_fl_menu
- (Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H),
- Interfaces.C.To_C (Text));
- fl_widget_set_user_data
- (This.Void_Ptr,
- Widget_Convert.To_Address (This'Unchecked_Access));
- menu_set_draw_hook (This.Void_Ptr, Draw_Hook'Address);
- menu_set_handle_hook (This.Void_Ptr, Handle_Hook'Address);
- This.My_Items := Item_Vectors.Empty_Vector;
- fl_widget_set_label (This.Void_Ptr, Interfaces.C.To_C (Text));
- end return;
- end Create;
-
- end Forge;
-
-
-
-
- procedure Add
- (This : in out Menu;
- Text : in String;
- Action : in Widget_Callback := null;
- Shortcut : in Key_Combo := No_Key;
- Flags : in Menu_Flag := Flag_Normal)
- is
- Ret_Place : Interfaces.C.int;
- Callback, User_Data : System.Address := System.Null_Address;
- begin
- if Action /= null then
- Callback := Item_Hook'Address;
- User_Data := Callback_Convert.To_Address (Action);
- end if;
- Ret_Place := fl_menu_add
- (This.Void_Ptr,
- Interfaces.C.To_C (Text),
- To_C (Shortcut),
- Callback,
- User_Data,
- Interfaces.C.unsigned_long (Flags));
- This.My_Items.Append (new FLTK.Menu_Items.Menu_Item);
- Wrapper (This.My_Items.Last_Element.all).Needs_Dealloc := False;
- if Flags + Flag_Submenu = Flags then
- This.My_Items.Append (new FLTK.Menu_Items.Menu_Item);
- Wrapper (This.My_Items.Last_Element.all).Needs_Dealloc := False;
- end if;
- end Add;
-
-
- procedure Insert
- (This : in out Menu;
- Place : in Index;
- Text : in String;
- Action : in Widget_Callback := null;
- Shortcut : in Key_Combo := No_Key;
- Flags : in Menu_Flag := Flag_Normal)
- is
- Ret_Place : Interfaces.C.int;
- Callback, User_Data : System.Address := System.Null_Address;
- begin
- if Action /= null then
- Callback := Item_Hook'Address;
- User_Data := Callback_Convert.To_Address (Action);
- end if;
- Ret_Place := fl_menu_insert
- (This.Void_Ptr,
- Interfaces.C.int (Place) - 1,
- Interfaces.C.To_C (Text),
- To_C (Shortcut),
- Callback,
- User_Data,
- Interfaces.C.unsigned_long (Flags));
- This.My_Items.Append (new FLTK.Menu_Items.Menu_Item);
- Wrapper (This.My_Items.Last_Element.all).Needs_Dealloc := False;
- if Flags + Flag_Submenu = Flags then
- This.My_Items.Append (new FLTK.Menu_Items.Menu_Item);
- Wrapper (This.My_Items.Last_Element.all).Needs_Dealloc := False;
- end if;
- end Insert;
-
-
- procedure Remove
- (This : in out Menu;
- Place : in Index) is
- begin
- Free_Item (This.My_Items.Reference (Place));
- This.My_Items.Delete (Place);
- fl_menu_remove (This.Void_Ptr, Interfaces.C.int (Place) - 1);
- end Remove;
-
-
- procedure Clear
- (This : in out Menu) is
- begin
- for Item of This.My_Items loop
- Free_Item (Item);
- end loop;
- This.My_Items.Clear;
- fl_menu_clear (This.Void_Ptr);
- end Clear;
-
-
-
-
- function Has_Item
- (This : in Menu;
- Place : in Index)
- return Boolean is
- begin
- return Place in 1 .. This.Number_Of_Items;
- end Has_Item;
-
-
- function Has_Item
- (Place : in Cursor)
- return Boolean is
- begin
- return Place.My_Container.Has_Item (Place.My_Index);
- end Has_Item;
-
-
- function Item
- (This : in Menu;
- Place : in Index)
- return FLTK.Menu_Items.Menu_Item_Reference is
- begin
- Wrapper (This.My_Items (Place).all).Void_Ptr :=
- fl_menu_get_item (This.Void_Ptr, Interfaces.C.int (Place) - 1);
- return R : FLTK.Menu_Items.Menu_Item_Reference := (Data => This.My_Items (Place)) do
- null;
- end return;
- end Item;
-
-
- function Item
- (This : in Menu;
- Place : in Cursor)
- return FLTK.Menu_Items.Menu_Item_Reference is
- begin
- return This.Item (Place.My_Index);
- end Item;
-
-
- function Find_Item
- (This : in Menu;
- Name : in String)
- return FLTK.Menu_Items.Menu_Item_Reference
- is
- Place : Extended_Index := This.Find_Index (Name);
- begin
- if Place = No_Index then
- raise No_Reference;
- end if;
- Wrapper (This.My_Items (Place).all).Void_Ptr :=
- fl_menu_find_item (This.Void_Ptr, Interfaces.C.To_C (Name));
- return R : FLTK.Menu_Items.Menu_Item_Reference := (Data => This.My_Items (Place)) do
- null;
- end return;
- end Find_Item;
-
-
- function Find_Item
- (This : in Menu;
- Action : in Widget_Callback)
- return FLTK.Menu_Items.Menu_Item_Reference
- is
- Place : Extended_Index := This.Find_Index (Action);
- begin
- if Place = No_Index then
- raise No_Reference;
- end if;
- Wrapper (This.My_Items (Place).all).Void_Ptr :=
- fl_menu_find_item2 (This.Void_Ptr, Callback_Convert.To_Address (Action));
- return R : FLTK.Menu_Items.Menu_Item_Reference := (Data => This.My_Items (Place)) do
- null;
- end return;
- end Find_Item;
-
-
- function Find_Index
- (This : in Menu;
- Name : in String)
- return Extended_Index
- is
- Ret : Interfaces.C.int;
- begin
- Ret := fl_menu_find_index (This.Void_Ptr, Interfaces.C.To_C (Name));
- return Extended_Index (Ret + 1);
- end Find_Index;
-
-
- function Find_Index
- (This : in Menu;
- Item : in FLTK.Menu_Items.Menu_Item)
- return Extended_Index
- is
- Ret : Interfaces.C.int;
- begin
- Ret := fl_menu_find_index2 (This.Void_Ptr, Wrapper (Item).Void_Ptr);
- return Extended_Index (Ret + 1);
- end Find_Index;
-
-
- function Find_Index
- (This : in Menu;
- Action : in Widget_Callback)
- return Extended_Index
- is
- Ret : Interfaces.C.int;
- begin
- Ret := fl_menu_find_index3
- (This.Void_Ptr,
- Callback_Convert.To_Address (Action));
- return Extended_Index (Ret + 1);
- end Find_Index;
-
-
- function Number_Of_Items
- (This : in Menu)
- return Natural is
- begin
- return Natural (fl_menu_size (This.Void_Ptr));
- end Number_Of_Items;
-
-
-
-
- function Iterate
- (This : in Menu)
- return Menu_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
- 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_Items);
- end Last;
-
-
- function Previous
- (Object : in Iterator;
- Place : in Cursor)
- return Cursor is
- begin
- return Cu : Cursor :=
- (My_Container => Place.My_Container,
- My_Index => Place.My_Index - 1);
- end Previous;
-
-
-
-
- function Chosen
- (This : in Menu)
- return FLTK.Menu_Items.Menu_Item_Reference
- is
- Place : Extended_Index := This.Chosen_Index;
- begin
- if Place = No_Index then
- raise No_Reference;
- end if;
- Wrapper (This.My_Items (Place).all).Void_Ptr := fl_menu_mvalue (This.Void_Ptr);
- return R : FLTK.Menu_Items.Menu_Item_Reference := (Data => This.My_Items (Place)) do
- null;
- end return;
- end Chosen;
-
-
- function Chosen_Label
- (This : in Menu)
- return String
- is
- Ptr : Interfaces.C.Strings.chars_ptr := fl_menu_text (This.Void_Ptr);
- begin
- if Ptr = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- -- no dealloc required?
- return Interfaces.C.Strings.Value (Ptr);
- end if;
- end Chosen_Label;
-
-
- function Chosen_Index
- (This : in Menu)
- return Extended_Index is
- begin
- return Extended_Index (fl_menu_value (This.Void_Ptr) + 1);
- end Chosen_Index;
-
-
- procedure Set_Chosen
- (This : in out Menu;
- Place : in Index)
- is
- Ignore_Ret : Interfaces.C.int;
- begin
- Ignore_Ret := fl_menu_set_value (This.Void_Ptr, Interfaces.C.int (Place) - 1);
- end Set_Chosen;
-
-
- procedure Set_Chosen
- (This : in out Menu;
- Item : in FLTK.Menu_Items.Menu_Item)
- is
- Ignore_Ret : Interfaces.C.int;
- begin
- Ignore_Ret := fl_menu_set_value2 (This.Void_Ptr, Wrapper (Item).Void_Ptr);
- end Set_Chosen;
-
-
-
-
- function Get_Text_Color
- (This : in Menu)
- return Color is
- begin
- return Color (fl_menu_get_textcolor (This.Void_Ptr));
- end Get_Text_Color;
-
-
- procedure Set_Text_Color
- (This : in out Menu;
- To : in Color) is
- begin
- fl_menu_set_textcolor (This.Void_Ptr, Interfaces.C.unsigned (To));
- end Set_Text_Color;
-
-
- function Get_Text_Font
- (This : in Menu)
- return Font_Kind is
- begin
- return Font_Kind'Val (fl_menu_get_textfont (This.Void_Ptr));
- end Get_Text_Font;
-
-
- procedure Set_Text_Font
- (This : in out Menu;
- To : in Font_Kind) is
- begin
- fl_menu_set_textfont (This.Void_Ptr, Font_Kind'Pos (To));
- end Set_Text_Font;
-
-
- function Get_Text_Size
- (This : in Menu)
- return Font_Size is
- begin
- return Font_Size (fl_menu_get_textsize (This.Void_Ptr));
- end Get_Text_Size;
-
-
- procedure Set_Text_Size
- (This : in out Menu;
- To : in Font_Size) is
- begin
- fl_menu_set_textsize (This.Void_Ptr, Interfaces.C.int (To));
- end Set_Text_Size;
-
-
-
-
- function Get_Down_Box
- (This : in Menu)
- return Box_Kind is
- begin
- return Box_Kind'Val (fl_menu_get_down_box (This.Void_Ptr));
- end Get_Down_Box;
-
-
- procedure Set_Down_Box
- (This : in out Menu;
- To : in Box_Kind) is
- begin
- fl_menu_set_down_box (This.Void_Ptr, Box_Kind'Pos (To));
- end Set_Down_Box;
-
-
- procedure Make_Global
- (This : in out Menu) is
- begin
- fl_menu_global (This.Void_Ptr);
- end Make_Global;
-
-
- procedure Measure_Item
- (This : in Menu;
- Item : in Index;
- W, H : out Integer) is
- begin
- W := Integer (fl_menu_measure
- (This.Void_Ptr,
- Interfaces.C.int (Item) - 1,
- Interfaces.C.int (H)));
- end Measure_Item;
-
-
-
-
- function Popup
- (This : in Menu;
- X, Y : in Integer;
- Title : in String := "";
- Initial : in Extended_Index := No_Index)
- return Extended_Index
- is
- Ptr : System.Address := fl_menu_popup
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.To_C (Title),
- Interfaces.C.int (Initial) - 1);
- begin
- return Extended_Index (fl_menu_find_index2 (This.Void_Ptr, Ptr) + 1);
- end Popup;
-
-
- function Pulldown
- (This : in Menu;
- X, Y, W, H : in Integer;
- Initial : in Extended_Index := No_Index)
- return Extended_Index
- is
- Ptr : System.Address := fl_menu_pulldown
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H),
- Interfaces.C.int (Initial) - 1);
- begin
- return Extended_Index (fl_menu_find_index2 (This.Void_Ptr, Ptr) + 1);
- end Pulldown;
-
-
-
-
- procedure Draw_Item
- (This : in out Menu;
- Item : in Index;
- X, Y, W, H : in Integer;
- Selected : in Boolean := False) is
- begin
- fl_menu_draw_item
- (This.Void_Ptr,
- Interfaces.C.int (Item) - 1,
- Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H),
- Boolean'Pos (Selected));
- end Draw_Item;
-
-
- function Handle
- (This : in out Menu;
- Event : in Event_Kind)
- return Event_Outcome is
- begin
- return Not_Handled;
- end Handle;
-
-
-end FLTK.Widgets.Menus;
-