summaryrefslogtreecommitdiff
path: root/src/fltk-widgets-menus.adb
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2017-05-14 13:33:27 +1000
committerJed Barber <jjbarber@y7mail.com>2017-05-14 13:33:27 +1000
commitf3638a598d55629bf130c648416ca75f5edae1f1 (patch)
treebef111db3ab51c3233b60380ecc3ab6d25441eae /src/fltk-widgets-menus.adb
parent371cccdf78fa9aaf49158ea57e598abcd5ff56f0 (diff)
Cleaned up Draw/Handle code on Ada side
Diffstat (limited to 'src/fltk-widgets-menus.adb')
-rw-r--r--src/fltk-widgets-menus.adb59
1 files changed, 21 insertions, 38 deletions
diff --git a/src/fltk-widgets-menus.adb b/src/fltk-widgets-menus.adb
index 140cc5b..67a2cd9 100644
--- a/src/fltk-widgets-menus.adb
+++ b/src/fltk-widgets-menus.adb
@@ -29,6 +29,7 @@ package body FLTK.Widgets.Menus is
(W, H : in System.Address);
pragma Import (C, menu_set_handle_hook, "menu_set_handle_hook");
+
function new_fl_menu
(X, Y, W, H : in Interfaces.C.int;
Text : in Interfaces.C.char_array)
@@ -39,6 +40,7 @@ package body FLTK.Widgets.Menus is
(F : in System.Address);
pragma Import (C, free_fl_menu, "free_fl_menu");
+
function fl_menu_add
(M : in System.Address;
T : in Interfaces.C.char_array;
@@ -59,6 +61,7 @@ package body FLTK.Widgets.Menus is
return System.Address;
pragma Import (C, fl_menu_mvalue, "fl_menu_mvalue");
+
function fl_menuitem_value
(MI : in System.Address)
return Interfaces.C.int;
@@ -75,30 +78,15 @@ package body FLTK.Widgets.Menus is
- procedure Draw_Hook (U : in System.Address);
- pragma Convention (C, Draw_Hook);
-
- procedure Draw_Hook
- (U : in System.Address)
+ procedure Item_Hook
+ (M, U : in System.Address)
is
- package Menu_Convert is new System.Address_To_Access_Conversions (Menu'Class);
-
- Ada_Menu : access Menu'Class :=
- Menu_Convert.To_Pointer (U);
- begin
- Ada_Menu.Draw;
- end Draw_Hook;
-
-
-
-
- function Handle
- (This : in out Menu;
- Event : in Event_Kind)
- return Event_Outcome 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
- return Not_Handled;
- end Handle;
+ Action.all (Ada_Widget.all);
+ end Item_Hook;
@@ -141,22 +129,6 @@ package body FLTK.Widgets.Menus is
- procedure Item_Hook (M, U : in System.Address);
- pragma Convention (C, Item_Hook);
-
- 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 Add
(This : in out Menu;
Text : in String;
@@ -214,6 +186,17 @@ package body FLTK.Widgets.Menus is
+ function Handle
+ (This : in out Menu;
+ Event : in Event_Kind)
+ return Event_Outcome is
+ begin
+ return Not_Handled;
+ end Handle;
+
+
+
+
function Value
(Item : in Menu_Item)
return Boolean is