From a3a475cc6a88e7fbd5d55cbca3dd517c0d34b260 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Wed, 25 May 2016 01:10:29 +1000 Subject: Buttons and accessors --- fltk-widget-button.adb | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) (limited to 'fltk-widget-button.adb') diff --git a/fltk-widget-button.adb b/fltk-widget-button.adb index 8ec03ce..238e761 100644 --- a/fltk-widget-button.adb +++ b/fltk-widget-button.adb @@ -14,9 +14,24 @@ package body FLTK.Widget.Button is return System.Address; pragma Import (C, new_fl_button, "new_fl_button"); - procedure free_fl_button (B : in System.Address); + procedure free_fl_button + (B : in System.Address); pragma Import (C, free_fl_button, "free_fl_button"); + function fl_button_get_state + (B : in System.Address) + return Interfaces.C.int; + pragma Import (C, fl_button_get_state, "fl_button_get_state"); + + procedure fl_button_set_state + (B : in System.Address; + S : in Interfaces.C.int); + pragma Import (C, fl_button_set_state, "fl_button_set_state"); + + procedure fl_button_set_only + (B : in System.Address); + pragma Import (C, fl_button_set_only, "fl_button_set_only"); + @@ -38,7 +53,6 @@ package body FLTK.Widget.Button is VP : System.Address; begin - VP := new_fl_button (Interfaces.C.int (X), Interfaces.C.int (Y), @@ -46,9 +60,37 @@ package body FLTK.Widget.Button is Interfaces.C.int (H), Interfaces.C.To_C (Label)); return (Ada.Finalization.Limited_Controlled with Void_Ptr => VP); - end Create; + + + function Get_State + (B : in Button_Type'Class) + return State is + begin + return State'Val (fl_button_get_state (B.Void_Ptr)); + end Get_State; + + + + + procedure Set_State + (B : in Button_Type'Class; + S : in State) is + begin + fl_button_set_state (B.Void_Ptr, State'Pos (S)); + end Set_State; + + + + + procedure Set_Only + (B : in Button_Type'Class) is + begin + fl_button_set_only (B.Void_Ptr); + end Set_Only; + + end FLTK.Widget.Button; -- cgit