aboutsummaryrefslogtreecommitdiff
path: root/body/fltk-widgets-valuators-dials.adb
diff options
context:
space:
mode:
Diffstat (limited to 'body/fltk-widgets-valuators-dials.adb')
-rw-r--r--body/fltk-widgets-valuators-dials.adb43
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