diff options
Diffstat (limited to 'body/fltk-widgets-valuators-dials.adb')
-rw-r--r-- | body/fltk-widgets-valuators-dials.adb | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/body/fltk-widgets-valuators-dials.adb b/body/fltk-widgets-valuators-dials.adb index 6dc9e69..43d943f 100644 --- a/body/fltk-widgets-valuators-dials.adb +++ b/body/fltk-widgets-valuators-dials.adb @@ -6,8 +6,7 @@ with - FLTK.Widgets.Groups, - Interfaces.C.Strings; + FLTK.Widgets.Groups; package body FLTK.Widgets.Valuators.Dials is @@ -17,6 +16,8 @@ package body FLTK.Widgets.Valuators.Dials is -- Functions From C -- ------------------------ + -- Allocation -- + function new_fl_dial (X, Y, W, H : in Interfaces.C.int; Text : in Interfaces.C.char_array) @@ -32,6 +33,8 @@ package body FLTK.Widgets.Valuators.Dials is + -- Limit Angles -- + function fl_dial_get_angle1 (D : in Storage.Integer_Address) return Interfaces.C.short; @@ -65,6 +68,8 @@ package body FLTK.Widgets.Valuators.Dials is + -- Drawing, Events -- + procedure fl_dial_draw (W : in Storage.Integer_Address); pragma Import (C, fl_dial_draw, "fl_dial_draw"); @@ -93,6 +98,8 @@ package body FLTK.Widgets.Valuators.Dials is + -- Dial Type -- + function fl_widget_get_type (D : in Storage.Integer_Address) return Interfaces.C.unsigned_char; @@ -162,11 +169,11 @@ package body FLTK.Widgets.Valuators.Dials is begin return This : Dial do This.Void_Ptr := new_fl_dial - (Interfaces.C.int (X), - Interfaces.C.int (Y), - Interfaces.C.int (W), - Interfaces.C.int (H), - Interfaces.C.To_C (Text)); + (Interfaces.C.int (X), + Interfaces.C.int (Y), + Interfaces.C.int (W), + Interfaces.C.int (H), + Interfaces.C.To_C (Text)); Extra_Init (This, X, Y, W, H, Text); end return; end Create; @@ -192,6 +199,8 @@ package body FLTK.Widgets.Valuators.Dials is -- API Subprograms -- ----------------------- + -- Limit Angles -- + function Get_First_Angle (This : in Dial) return Short_Integer is @@ -237,6 +246,8 @@ package body FLTK.Widgets.Valuators.Dials is + -- Drawing, Events -- + procedure Draw (This : in out Dial) is begin @@ -270,27 +281,33 @@ package body FLTK.Widgets.Valuators.Dials is (This : in out Dial; Event : in Event_Kind; X, Y, W, H : in Integer) - return Event_Outcome is - begin - return Event_Outcome'Val (fl_dial_handle2 + return Event_Outcome + is + Result : constant Interfaces.C.int := fl_dial_handle2 (This.Void_Ptr, Event_Kind'Pos (Event), Interfaces.C.int (X), Interfaces.C.int (Y), Interfaces.C.int (W), - Interfaces.C.int (H))); + Interfaces.C.int (H)); + begin + return Event_Outcome'Val (Result); exception - when Constraint_Error => raise Internal_FLTK_Error; + when Constraint_Error => raise Internal_FLTK_Error with + "Fl_Dial::handle returned unexpected int value of " & + Interfaces.C.int'Image (Result); end Handle; + -- Dial Type -- + function Get_Kind (This : in Dial) return Dial_Kind is - Result : Interfaces.C.unsigned_char := fl_widget_get_type (This.Void_Ptr); + Result : constant Interfaces.C.unsigned_char := fl_widget_get_type (This.Void_Ptr); begin return Dial_Kind'Val (Result); exception |