diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2022-12-10 02:02:35 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2022-12-10 02:02:35 +1300 |
commit | c477cd9b9879692a03178e67e71448fc97033b66 (patch) | |
tree | acbfcd7bcf0dd138196e00a79800c22ae923f6b2 /src/fltk-widgets-menus-menu_buttons.adb | |
parent | 5c4cea0152fca573e7b2832799ead10afd0697a6 (diff) |
Reworked menu popup and pulldown subprograms to no longer need exceptions
Diffstat (limited to 'src/fltk-widgets-menus-menu_buttons.adb')
-rw-r--r-- | src/fltk-widgets-menus-menu_buttons.adb | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/fltk-widgets-menus-menu_buttons.adb b/src/fltk-widgets-menus-menu_buttons.adb index babf75f..890d847 100644 --- a/src/fltk-widgets-menus-menu_buttons.adb +++ b/src/fltk-widgets-menus-menu_buttons.adb @@ -53,6 +53,12 @@ package body FLTK.Widgets.Menus.Menu_Buttons is pragma Import (C, fl_menu_button_popup, "fl_menu_button_popup"); pragma Inline (fl_menu_button_popup); + 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); + @@ -126,11 +132,12 @@ package body FLTK.Widgets.Menus.Menu_Buttons is function Popup (This : in out Menu_Button) - return FLTK.Menu_Items.Menu_Item is + return Extended_Index + is + use type Interfaces.C.int; + Ptr : System.Address := fl_menu_button_popup (This.Void_Ptr); begin - return Item : FLTK.Menu_Items.Menu_Item do - Wrapper (Item).Void_Ptr := fl_menu_button_popup (This.Void_Ptr); - end return; + return Extended_Index (fl_menu_find_index2 (This.Void_Ptr, Ptr) + 1); end Popup; |