aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-asks.adb
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2025-01-21 21:04:54 +1300
committerJedidiah Barber <contact@jedbarber.id.au>2025-01-21 21:04:54 +1300
commitb4438b2fbe895694be98e6e8426103deefc51448 (patch)
tree760d86cd7c06420a91dad102cc9546aee73146fc /src/fltk-asks.adb
parenta4703a65b015140cd4a7a985db66264875ade734 (diff)
Split public API and private implementation files into different directories
Diffstat (limited to 'src/fltk-asks.adb')
-rw-r--r--src/fltk-asks.adb659
1 files changed, 0 insertions, 659 deletions
diff --git a/src/fltk-asks.adb b/src/fltk-asks.adb
deleted file mode 100644
index bd09fac..0000000
--- a/src/fltk-asks.adb
+++ /dev/null
@@ -1,659 +0,0 @@
-
-
--- Programmed by Jedidiah Barber
--- Released into the public domain
-
-
-with
-
- Ada.Assertions,
- Interfaces.C.Strings;
-
-use type
-
- Interfaces.C.int,
- Interfaces.C.Strings.chars_ptr;
-
-
-package body FLTK.Asks is
-
-
- package Chk renames Ada.Assertions;
-
-
-
-
- ------------------------
- -- Functions From C --
- ------------------------
-
- function fl_ask_get_cancel
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_get_cancel, "fl_ask_get_cancel");
- pragma Inline (fl_ask_get_cancel);
-
- procedure fl_ask_set_cancel
- (V : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_set_cancel, "fl_ask_set_cancel");
- pragma Inline (fl_ask_set_cancel);
-
- function fl_ask_get_close
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_get_close, "fl_ask_get_close");
- pragma Inline (fl_ask_get_close);
-
- procedure fl_ask_set_close
- (V : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_set_close, "fl_ask_set_close");
- pragma Inline (fl_ask_set_close);
-
- function fl_ask_get_no
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_get_no, "fl_ask_get_no");
- pragma Inline (fl_ask_get_no);
-
- procedure fl_ask_set_no
- (V : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_set_no, "fl_ask_set_no");
- pragma Inline (fl_ask_set_no);
-
- function fl_ask_get_ok
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_get_ok, "fl_ask_get_ok");
- pragma Inline (fl_ask_get_ok);
-
- procedure fl_ask_set_ok
- (V : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_set_ok, "fl_ask_set_ok");
- pragma Inline (fl_ask_set_ok);
-
- function fl_ask_get_yes
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_get_yes, "fl_ask_get_yes");
- pragma Inline (fl_ask_get_yes);
-
- procedure fl_ask_set_yes
- (V : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_set_yes, "fl_ask_set_yes");
- pragma Inline (fl_ask_set_yes);
-
-
-
-
- procedure fl_ask_alert
- (M : in Interfaces.C.char_array);
- pragma Import (C, fl_ask_alert, "fl_ask_alert");
- pragma Inline (fl_ask_alert);
-
- procedure fl_ask_beep
- (B : in Interfaces.C.int);
- pragma Import (C, fl_ask_beep, "fl_ask_beep");
- pragma Inline (fl_ask_beep);
-
- function fl_ask_choice
- (M, A : in Interfaces.C.char_array;
- B, C : in Interfaces.C.Strings.chars_ptr)
- return Interfaces.C.int;
- pragma Import (C, fl_ask_choice, "fl_ask_choice");
- pragma Inline (fl_ask_choice);
-
- function fl_ask_choice_n
- (M, A : in Interfaces.C.char_array;
- B, C : in Interfaces.C.Strings.chars_ptr)
- return Interfaces.C.int;
- pragma Import (C, fl_ask_choice_n, "fl_ask_choice_n");
- pragma Inline (fl_ask_choice_n);
-
- function fl_ask_input
- (M, D : in Interfaces.C.char_array)
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_input, "fl_ask_input");
- pragma Inline (fl_ask_input);
-
- procedure fl_ask_message
- (M : in Interfaces.C.char_array);
- pragma Import (C, fl_ask_message, "fl_ask_message");
- pragma Inline (fl_ask_message);
-
- function fl_ask_password
- (M, D : in Interfaces.C.char_array)
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_password, "fl_ask_password");
- pragma Inline (fl_ask_password);
-
-
-
-
- function fl_ask_color_chooser
- (N : in Interfaces.C.char_array;
- R, G, B : in out Interfaces.C.double;
- M : in Interfaces.C.int)
- return Interfaces.C.int;
- pragma Import (C, fl_ask_color_chooser, "fl_ask_color_chooser");
- pragma Inline (fl_ask_color_chooser);
-
- function fl_ask_color_chooser2
- (N : in Interfaces.C.char_array;
- R, G, B : in out Interfaces.C.unsigned_char;
- M : in Interfaces.C.int)
- return Interfaces.C.int;
- pragma Import (C, fl_ask_color_chooser2, "fl_ask_color_chooser2");
- pragma Inline (fl_ask_color_chooser2);
-
- function fl_ask_dir_chooser
- (M, D : in Interfaces.C.char_array;
- R : in Interfaces.C.int)
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_dir_chooser, "fl_ask_dir_chooser");
- pragma Inline (fl_ask_dir_chooser);
-
- function fl_ask_file_chooser
- (M, P, D : in Interfaces.C.char_array;
- R : in Interfaces.C.int)
- return Interfaces.C.Strings.chars_ptr;
- pragma Import (C, fl_ask_file_chooser, "fl_ask_file_chooser");
- pragma Inline (fl_ask_file_chooser);
-
- procedure fl_ask_file_chooser_callback
- (CB : in Storage.Integer_Address);
- pragma Import (C, fl_ask_file_chooser_callback, "fl_ask_file_chooser_callback");
- pragma Inline (fl_ask_file_chooser_callback);
-
- procedure fl_ask_file_chooser_ok_label
- (L : in Interfaces.C.Strings.chars_ptr);
- pragma Import (C, fl_ask_file_chooser_ok_label, "fl_ask_file_chooser_ok_label");
- pragma Inline (fl_ask_file_chooser_ok_label);
-
-
-
-
- function fl_ask_get_message_hotspot
- return Interfaces.C.int;
- pragma Import (C, fl_ask_get_message_hotspot, "fl_ask_get_message_hotspot");
- pragma Inline (fl_ask_get_message_hotspot);
-
- procedure fl_ask_set_message_hotspot
- (V : in Interfaces.C.int);
- pragma Import (C, fl_ask_set_message_hotspot, "fl_ask_set_message_hotspot");
- pragma Inline (fl_ask_set_message_hotspot);
-
- procedure fl_ask_message_font
- (F, S : in Interfaces.C.int);
- pragma Import (C, fl_ask_message_font, "fl_ask_message_font");
- pragma Inline (fl_ask_message_font);
-
- function fl_ask_message_icon
- return Storage.Integer_Address;
- pragma Import (C, fl_ask_message_icon, "fl_ask_message_icon");
- pragma Inline (fl_ask_message_icon);
-
- procedure fl_ask_message_title
- (T : in Interfaces.C.char_array);
- pragma Import (C, fl_ask_message_title, "fl_ask_message_title");
- pragma Inline (fl_ask_message_title);
-
- procedure fl_ask_message_title_default
- (T : in Interfaces.C.char_array);
- pragma Import (C, fl_ask_message_title_default, "fl_ask_message_title_default");
- pragma Inline (fl_ask_message_title_default);
-
-
-
-
- ---------------------
- -- Callback Hook --
- ---------------------
-
- procedure File_Chooser_Callback_Hook
- (C_Str : in Interfaces.C.Strings.chars_ptr);
-
- pragma Convention (C, File_Chooser_Callback_Hook);
-
- procedure File_Chooser_Callback_Hook
- (C_Str : in Interfaces.C.Strings.chars_ptr) is
- begin
- if Chooser_Func /= null then
- Chooser_Func (Interfaces.C.Strings.Value (C_Str));
- end if;
- end File_Chooser_Callback_Hook;
-
-
-
-
- ---------------
- -- Cleanup --
- ---------------
-
- procedure Finalize
- (This : in out Dialog_String_Final_Controller)
- is
- use Interfaces.C.Strings;
- begin
- Free (Cancel_Str);
- Free (Close_Str);
- Free (No_Str);
- Free (OK_Str);
- Free (Yes_Str);
- Free (Chooser_OK_Str);
- end Finalize;
-
-
-
-
- ------------------
- -- Attributes --
- ------------------
-
- function Get_Cancel_String
- return String is
- begin
- return Interfaces.C.Strings.Value (fl_ask_get_cancel);
- end Get_Cancel_String;
-
-
- procedure Set_Cancel_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (Cancel_Str);
- Cancel_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_set_cancel (Cancel_Str);
- end Set_Cancel_String;
-
-
- function Get_Close_String
- return String is
- begin
- return Interfaces.C.Strings.Value (fl_ask_get_close);
- end Get_Close_String;
-
-
- procedure Set_Close_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (Close_Str);
- Close_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_set_close (Close_Str);
- end Set_Close_String;
-
-
- function Get_No_String
- return String is
- begin
- return Interfaces.C.Strings.Value (fl_ask_get_no);
- end Get_No_String;
-
-
- procedure Set_No_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (No_Str);
- No_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_set_no (No_Str);
- end Set_No_String;
-
-
- function Get_OK_String
- return String is
- begin
- return Interfaces.C.Strings.Value (fl_ask_get_ok);
- end Get_OK_String;
-
-
- procedure Set_OK_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (OK_Str);
- OK_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_set_ok (OK_Str);
- end Set_OK_String;
-
-
- function Get_Yes_String
- return String is
- begin
- return Interfaces.C.Strings.Value (fl_ask_get_yes);
- end Get_Yes_String;
-
-
- procedure Set_Yes_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (Yes_Str);
- Yes_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_set_yes (Yes_Str);
- end Set_Yes_String;
-
-
-
-
- ----------------------
- -- Common Dialogs --
- ----------------------
-
- procedure Alert
- (Message : String) is
- begin
- fl_ask_alert (Interfaces.C.To_C (Message));
- end Alert;
-
-
- procedure Beep
- (Kind : in Beep_Kind := Default_Beep) is
- begin
- fl_ask_beep (Beep_Kind'Pos (Kind));
- end Beep;
-
-
- function Choice
- (Message, Button1 : in String)
- return Choice_Result
- is
- Result : Interfaces.C.int := fl_ask_choice
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.Null_Ptr,
- Interfaces.C.Strings.Null_Ptr);
- begin
- return Choice_Result'Val (Result);
- end Choice;
-
-
- function Choice
- (Message, Button1, Button2 : in String)
- return Choice_Result
- is
- Str2 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button2);
- Result : Interfaces.C.int := fl_ask_choice
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.To_Chars_Ptr (Str2'Unchecked_Access),
- Interfaces.C.Strings.Null_Ptr);
- begin
- return Choice_Result'Val (Result);
- end Choice;
-
-
- function Choice
- (Message, Button1, Button2, Button3 : in String)
- return Choice_Result
- is
- Str2 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button2);
- Str3 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button3);
- Result : Interfaces.C.int := fl_ask_choice
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.To_Chars_Ptr (Str2'Unchecked_Access),
- Interfaces.C.Strings.To_Chars_Ptr (Str3'Unchecked_Access));
- begin
- return Choice_Result'Val (Result);
- end Choice;
-
-
- function Extended_Choice
- (Message, Button1 : in String)
- return Extended_Choice_Result
- is
- Result : Interfaces.C.int := fl_ask_choice_n
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.Null_Ptr,
- Interfaces.C.Strings.Null_Ptr);
- begin
- pragma Assert (Result in -3 .. 2);
- return Extended_Choice_Result'Val (Result mod 6);
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Extended_Choice;
-
-
- function Extended_Choice
- (Message, Button1, Button2 : in String)
- return Extended_Choice_Result
- is
- Str2 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button2);
- Result : Interfaces.C.int := fl_ask_choice_n
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.To_Chars_Ptr (Str2'Unchecked_Access),
- Interfaces.C.Strings.Null_Ptr);
- begin
- pragma Assert (Result in -3 .. 2);
- return Extended_Choice_Result'Val (Result mod 6);
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Extended_Choice;
-
-
- function Extended_Choice
- (Message, Button1, Button2, Button3 : in String)
- return Extended_Choice_Result
- is
- Str2 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button2);
- Str3 : aliased Interfaces.C.char_array := Interfaces.C.To_C (Button3);
- Result : Interfaces.C.int := fl_ask_choice_n
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Button1),
- Interfaces.C.Strings.To_Chars_Ptr (Str2'Unchecked_Access),
- Interfaces.C.Strings.To_Chars_Ptr (Str3'Unchecked_Access));
- begin
- pragma Assert (Result in -3 .. 2);
- return Extended_Choice_Result'Val (Result mod 6);
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Extended_Choice;
-
-
- function Text_Input
- (Message : in String;
- Default : in String := "")
- return String
- is
- Result : Interfaces.C.Strings.chars_ptr := fl_ask_input
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Default));
- begin
- -- Result does not need dealloc
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
- end Text_Input;
-
-
- procedure Message_Box
- (Message : in String) is
- begin
- fl_ask_message (Interfaces.C.To_C (Message));
- end Message_Box;
-
-
- function Password
- (Message : in String;
- Default : in String := "")
- return String
- is
- Result : Interfaces.C.Strings.chars_ptr := fl_ask_password
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Default));
- begin
- -- Result does not need dealloc
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
- end Password;
-
-
-
-
- function Color_Chooser
- (Title : in String;
- R, G, B : in out RGB_Float;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
- FLTK.Widgets.Groups.Color_Choosers.RGB)
- return Confirm_Result
- is
- C_R : Interfaces.C.double := Interfaces.C.double (R);
- C_G : Interfaces.C.double := Interfaces.C.double (G);
- C_B : Interfaces.C.double := Interfaces.C.double (B);
- M : Interfaces.C.int := FLTK.Widgets.Groups.Color_Choosers.Color_Mode'Pos (Mode);
- Result : Interfaces.C.int := fl_ask_color_chooser
- (Interfaces.C.To_C (Title), C_R, C_G, C_B, M);
- begin
- if Result = 1 then
- R := RGB_Float (C_R);
- G := RGB_Float (C_G);
- B := RGB_Float (C_B);
- return Confirm;
- else
- pragma Assert (Result = 0);
- return Cancel;
- end if;
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Color_Chooser;
-
-
- function Color_Chooser
- (Title : in String;
- R, G, B : in out RGB_Int;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
- FLTK.Widgets.Groups.Color_Choosers.RGB)
- return Confirm_Result
- is
- C_R : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (R);
- C_G : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (G);
- C_B : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (B);
- M : Interfaces.C.int := FLTK.Widgets.Groups.Color_Choosers.Color_Mode'Pos (Mode);
- Result : Interfaces.C.int := fl_ask_color_chooser2
- (Interfaces.C.To_C (Title), C_R, C_G, C_B, M);
- begin
- if Result = 1 then
- R := RGB_Int (C_R);
- G := RGB_Int (C_G);
- B := RGB_Int (C_B);
- return Confirm;
- else
- pragma Assert (Result = 0);
- return Cancel;
- end if;
- exception
- when Chk.Assertion_Error => raise Internal_FLTK_Error;
- end Color_Chooser;
-
-
- function Dir_Chooser
- (Message, Default : in String;
- Relative : in Boolean := False)
- return String
- is
- Result : Interfaces.C.Strings.chars_ptr := fl_ask_dir_chooser
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Default),
- Boolean'Pos (Relative));
- begin
- -- Result does not need dealloc
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
- end Dir_Chooser;
-
-
- function File_Chooser
- (Message, Filter_Pattern, Default : in String;
- Relative : in Boolean := False)
- return String
- is
- Result : Interfaces.C.Strings.chars_ptr := fl_ask_file_chooser
- (Interfaces.C.To_C (Message),
- Interfaces.C.To_C (Filter_Pattern),
- Interfaces.C.To_C (Default),
- Boolean'Pos (Relative));
- begin
- -- Result does not need dealloc
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
- end File_Chooser;
-
-
- procedure Set_File_Chooser_Callback
- (Func : in File_Chooser_Callback) is
- begin
- Chooser_Func := Func;
- end Set_File_Chooser_Callback;
-
-
- procedure Set_File_Chooser_OK_String
- (Value : in String) is
- begin
- Interfaces.C.Strings.Free (Chooser_OK_Str);
- Chooser_OK_Str := Interfaces.C.Strings.New_String (Value);
- fl_ask_file_chooser_ok_label (Chooser_OK_Str);
- end Set_File_Chooser_OK_String;
-
-
-
-
- function Get_Message_Hotspot
- return Boolean is
- begin
- return fl_ask_get_message_hotspot /= 0;
- end Get_Message_Hotspot;
-
-
- procedure Set_Message_Hotspot
- (To : in Boolean) is
- begin
- fl_ask_set_message_hotspot (Boolean'Pos (To));
- end Set_Message_Hotspot;
-
-
- procedure Set_Message_Font
- (Font : in Font_Kind;
- Size : in Font_Size) is
- begin
- fl_ask_message_font (Font_Kind'Pos (Font), Interfaces.C.int (Size));
- end Set_Message_Font;
-
-
- function Get_Message_Icon
- return FLTK.Widgets.Boxes.Box_Reference is
- begin
- return (Data => Icon_Box'Access);
- end Get_Message_Icon;
-
-
- procedure Set_Message_Title
- (To : in String) is
- begin
- fl_ask_message_title (Interfaces.C.To_C (To));
- end Set_Message_Title;
-
-
- procedure Set_Message_Title_Default
- (To : in String) is
- begin
- fl_ask_message_title_default (Interfaces.C.To_C (To));
- end Set_Message_Title_Default;
-
-
-
-
-begin
-
-
- Wrapper (Icon_Box).Void_Ptr := fl_ask_message_icon;
- Wrapper (Icon_Box).Needs_Dealloc := False;
-
- fl_ask_file_chooser_callback (Storage.To_Integer (File_Chooser_Callback_Hook'Address));
-
-
-end FLTK.Asks;
-