diff options
Diffstat (limited to 'src/fltk-widget_callback_conversions.adb')
-rw-r--r-- | src/fltk-widget_callback_conversions.adb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/fltk-widget_callback_conversions.adb b/src/fltk-widget_callback_conversions.adb new file mode 100644 index 0000000..a0a4428 --- /dev/null +++ b/src/fltk-widget_callback_conversions.adb @@ -0,0 +1,48 @@ + + +with + + Ada.Unchecked_Conversion, + FLTK.Widgets; + +use type + + FLTK.Widgets.Widget_Callback; + + +package body FLTK.Widget_Callback_Conversions is + + + function To_Access + (Addy : in Storage.Integer_Address) + return FLTK.Widgets.Widget_Callback + is + function Raw is new Ada.Unchecked_Conversion + (Storage.Integer_Address, FLTK.Widgets.Widget_Callback); + begin + if Addy = Null_Pointer then + return null; + else + return Raw (Addy); + end if; + end To_Access; + + + function To_Address + (Call : in FLTK.Widgets.Widget_Callback) + return Storage.Integer_Address + is + function Raw is new Ada.Unchecked_Conversion + (FLTK.Widgets.Widget_Callback, Storage.Integer_Address); + begin + if Call = null then + return Null_Pointer; + else + return Raw (Call); + end if; + end To_Address; + + +end FLTK.Widget_Callback_Conversions; + + |