From a4b6a06f372923fb38ae4d3c7e0429ce93ea7748 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sun, 15 Apr 2018 19:41:33 +1000 Subject: Started process of polishing packages --- doc/blank_template.html | 55 +++++ doc/fl_box.html | 85 ++++++++ doc/fl_button.html | 203 +++++++++++++++++++ doc/fl_check_button.html | 83 ++++++++ doc/fl_light_button.html | 87 ++++++++ doc/fl_radio_button.html | 83 ++++++++ doc/fl_radio_light_button.html | 83 ++++++++ doc/fl_radio_round_button.html | 83 ++++++++ doc/fl_repeat_button.html | 85 ++++++++ doc/fl_return_button.html | 87 ++++++++ doc/fl_round_button.html | 83 ++++++++ doc/fl_toggle_button.html | 83 ++++++++ doc/fl_tooltip.html | 265 +++++++++++++++++++++++++ doc/map.css | 38 ++++ progress.txt | 32 +-- src/c_fl_box.h | 12 +- src/c_fl_button.cpp | 14 +- src/c_fl_button.h | 26 +-- src/c_fl_check_button.h | 12 +- src/c_fl_light_button.h | 12 +- src/c_fl_radio_button.h | 12 +- src/c_fl_radio_light_button.h | 12 +- src/c_fl_radio_round_button.h | 12 +- src/c_fl_repeat_button.h | 12 +- src/c_fl_return_button.h | 12 +- src/c_fl_round_button.h | 12 +- src/c_fl_toggle_button.h | 12 +- src/c_fl_tooltip.h | 58 +++--- src/fltk-dialogs.adb | 2 +- src/fltk-dialogs.ads | 2 +- src/fltk-tooltips.adb | 35 +++- src/fltk-tooltips.ads | 34 ++++ src/fltk-widgets-boxes.adb | 6 + src/fltk-widgets-boxes.ads | 8 +- src/fltk-widgets-buttons-enter.adb | 6 + src/fltk-widgets-buttons-enter.ads | 9 + src/fltk-widgets-buttons-light-check.adb | 6 + src/fltk-widgets-buttons-light-check.ads | 9 + src/fltk-widgets-buttons-light-radio.adb | 6 + src/fltk-widgets-buttons-light-radio.ads | 9 + src/fltk-widgets-buttons-light-round-radio.adb | 6 + src/fltk-widgets-buttons-light-round-radio.ads | 9 + src/fltk-widgets-buttons-light-round.adb | 6 + src/fltk-widgets-buttons-light-round.ads | 9 + src/fltk-widgets-buttons-light.adb | 6 + src/fltk-widgets-buttons-light.ads | 9 + src/fltk-widgets-buttons-radio.adb | 6 + src/fltk-widgets-buttons-radio.ads | 9 + src/fltk-widgets-buttons-repeat.adb | 6 + src/fltk-widgets-buttons-repeat.ads | 9 + src/fltk-widgets-buttons-toggle.adb | 6 + src/fltk-widgets-buttons-toggle.ads | 9 + src/fltk-widgets-buttons.adb | 13 ++ src/fltk-widgets-buttons.ads | 16 ++ 54 files changed, 1775 insertions(+), 129 deletions(-) create mode 100644 doc/blank_template.html create mode 100644 doc/fl_box.html create mode 100644 doc/fl_button.html create mode 100644 doc/fl_check_button.html create mode 100644 doc/fl_light_button.html create mode 100644 doc/fl_radio_button.html create mode 100644 doc/fl_radio_light_button.html create mode 100644 doc/fl_radio_round_button.html create mode 100644 doc/fl_repeat_button.html create mode 100644 doc/fl_return_button.html create mode 100644 doc/fl_round_button.html create mode 100644 doc/fl_toggle_button.html create mode 100644 doc/fl_tooltip.html create mode 100644 doc/map.css diff --git a/doc/blank_template.html b/doc/blank_template.html new file mode 100644 index 0000000..256c469 --- /dev/null +++ b/doc/blank_template.html @@ -0,0 +1,55 @@ + + + + + + + Binding Map + + + + + + +

Binding Map

+ + + + + + + + +
Package name
+ + + + + + + + + + +
Types
+ + + + + + + + + + + +
Functions and Procedures
+
+
+
+
+ + + + + diff --git a/doc/fl_box.html b/doc/fl_box.html new file mode 100644 index 0000000..3f5c5f8 --- /dev/null +++ b/doc/fl_box.html @@ -0,0 +1,85 @@ + + + + + + + Fl_Box Binding Map + + + + + + +

Fl_Box Binding Map

+ + + + + + + + + +
Package name
Fl_BoxFLTK.Widgets.Boxes
+ + + + + + + + + + + + + + + +
Types
Fl_BoxBox
 Box_Reference
+ + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Box (int X, int Y, int W, int H, const char *l=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Box;
+
+virtual int handle(int);
+
+function Handle
+       (This  : in out Box;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+void draw();
+
+procedure Draw
+       (This : in out Box);
+
+ + + + + diff --git a/doc/fl_button.html b/doc/fl_button.html new file mode 100644 index 0000000..be21c60 --- /dev/null +++ b/doc/fl_button.html @@ -0,0 +1,203 @@ + + + + + + + Fl_Button Binding Map + + + + + + +

Fl_Button Binding Map

+ + + + + + + + + +
Package name
Fl_ButtonFLTK.Widgets.Buttons
+ + + + + + + + + + + + + + + + + + + + + +
Types
Fl_ButtonButton
 Button_Reference
 State
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Button;
+
+int clear();
+
See int value();
+Fl_Boxtype down_box() const;
+
+function Get_Down_Box
+       (This : in Button)
+    return Box_Kind;
+
+void down_box(Fl_Boxtype b);
+
+procedure Set_Down_Box
+       (This : in out Button;
+        To   : in     Box_Kind);
+
+Fl_Color down_color() const;
+
 
+void down_color(unsigned c);
+
 
+virtual void draw();
+
+procedure Draw
+       (This : in out Button);
+
+virtual int handle(int);
+
+function Handle
+       (This  : in out Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+int set();
+
See int value();
+void setonly();
+
+procedure Set_Only
+       (This : in out Button);
+
+int shortcut() const;
+
+function Get_Shortcut
+       (This : in Button)
+    return Shortcut_Key;
+
+void shortcut(int s);
+
+procedure Set_Shortcut
+       (This : in out Button;
+        Key  : in     Shortcut_Key);
+
+void shortcut(const char *s);
+
See void shortcut(int s);
+int value(int v);
+
+procedure Set_State
+       (This : in out Button;
+        St   : in     State);
+
+char value() const;
+
+function Get_State
+       (This : in Button)
+    return State;
+
+ + + + + diff --git a/doc/fl_check_button.html b/doc/fl_check_button.html new file mode 100644 index 0000000..22405bd --- /dev/null +++ b/doc/fl_check_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Check_Button Binding Map + + + + + + +

Fl_Check_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Check_ButtonFLTK.Widgets.Buttons.Light.Check
+ + + + + + + + + + + + + + + + +
Types
Fl_Check_ButtonCheck_Button
 Check_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Check_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Check_Button;
+
 
+procedure Draw
+       (This : in out Check_Button);
+
 
+function Handle
+       (This  : in out Check_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_light_button.html b/doc/fl_light_button.html new file mode 100644 index 0000000..521d1be --- /dev/null +++ b/doc/fl_light_button.html @@ -0,0 +1,87 @@ + + + + + + + Fl_Light_Button Binding Map + + + + + + +

Fl_Light_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Light_ButtonFLTK.Widgets.Buttons.Light
+ + + + + + + + + + + + + + + + +
Types
Fl_Light_ButtonLight_Button
 Light_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Light_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Light_Button;
+
+void draw();
+
+procedure Draw
+       (This : in out Light_Button);
+
+int handle(int);
+
+function Handle
+       (This  : in out Light_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_radio_button.html b/doc/fl_radio_button.html new file mode 100644 index 0000000..03f2f92 --- /dev/null +++ b/doc/fl_radio_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Radio_Button Binding Map + + + + + + +

Fl_Radio_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Radio_ButtonFLTK.Widgets.Buttons.Radio
+ + + + + + + + + + + + + + + + +
Types
Fl_Radio_ButtonRadio_Button
 Radio_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Radio_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Radio_Button;
+
 
+procedure Draw
+       (This : in out Radio_Button);
+
 
+function Handle
+       (This  : in out Radio_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_radio_light_button.html b/doc/fl_radio_light_button.html new file mode 100644 index 0000000..bde57e4 --- /dev/null +++ b/doc/fl_radio_light_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Radio_Light_Button Binding Map + + + + + + +

Fl_Radio_Light_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Radio_Light_ButtonFLTK.Widgets.Buttons.Light.Radio
+ + + + + + + + + + + + + + + + +
Types
Fl_Radio_Light_ButtonRadio_Light_Button
 Radio_Light_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Radio_Light_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Radio_Light_Button;
+
 
+procedure Draw
+       (This : in out Radio_Light_Button);
+
 
+function Handle
+       (This  : in out Radio_Light_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_radio_round_button.html b/doc/fl_radio_round_button.html new file mode 100644 index 0000000..3cd67dd --- /dev/null +++ b/doc/fl_radio_round_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Radio_Round_Button Binding Map + + + + + + +

Fl_Radio_Round_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Radio_Round_ButtonFLTK.Widgets.Buttons.Light.Round.Radio
+ + + + + + + + + + + + + + + + +
Types
Fl_Radio_Round_ButtonRadio_Round_Button
 Radio_Round_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Radio_Round_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Radio_Round_Button;
+
 
+procedure Draw
+       (This : in out Radio_Round_Button);
+
 
+function Handle
+       (This  : in out Radio_Round_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_repeat_button.html b/doc/fl_repeat_button.html new file mode 100644 index 0000000..852a1ce --- /dev/null +++ b/doc/fl_repeat_button.html @@ -0,0 +1,85 @@ + + + + + + + Fl_Repeat_Button Binding Map + + + + + + +

Fl_Repeat_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Repeat_ButtonFLTK.Widgets.Buttons.Repeat
+ + + + + + + + + + + + + + + + +
Types
Fl_Repeat_ButtonRepeat_Button
 Repeat_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Repeat_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Repeat_Button;
+
 
+procedure Draw
+       (This : in out Repeat_Button);
+
+int handle(int);
+
+function Handle
+       (This  : in out Repeat_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_return_button.html b/doc/fl_return_button.html new file mode 100644 index 0000000..2bbfac0 --- /dev/null +++ b/doc/fl_return_button.html @@ -0,0 +1,87 @@ + + + + + + + Fl_Return_Button Binding Map + + + + + + +

Fl_Return_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Return_ButtonFLTK.Widgets.Buttons.Enter
+ + + + + + + + + + + + + + + + +
Types
Fl_Return_ButtonEnter_Button
 Enter_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Return_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Enter_Button;
+
+void draw();
+
+procedure Draw
+       (This : in out Enter_Button);
+
+int handle(int);
+
+function Handle
+       (This  : in out Enter_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_round_button.html b/doc/fl_round_button.html new file mode 100644 index 0000000..cc780f7 --- /dev/null +++ b/doc/fl_round_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Round_Button Binding Map + + + + + + +

Fl_Round_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Round_ButtonFLTK.Widgets.Buttons.Light.Round
+ + + + + + + + + + + + + + + + +
Types
Fl_Round_ButtonRound_Button
 Round_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Round_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Round_Button;
+
 
+procedure Draw
+       (This : in out Round_Button);
+
 
+function Handle
+       (This  : in out Round_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_toggle_button.html b/doc/fl_toggle_button.html new file mode 100644 index 0000000..1696895 --- /dev/null +++ b/doc/fl_toggle_button.html @@ -0,0 +1,83 @@ + + + + + + + Fl_Toggle_Button Binding Map + + + + + + +

Fl_Toggle_Button Binding Map

+ + + + + + + + + +
Package name
Fl_Toggle_ButtonFLTK.Widgets.Buttons.Toggle
+ + + + + + + + + + + + + + + + +
Types
Fl_Toggle_ButtonToggle_Button
 Toggle_Button_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Toggle_Button(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Toggle_Button;
+
 
+procedure Draw
+       (This : in out Toggle_Button);
+
 
+function Handle
+       (This  : in out Toggle_Button;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + diff --git a/doc/fl_tooltip.html b/doc/fl_tooltip.html new file mode 100644 index 0000000..9c72207 --- /dev/null +++ b/doc/fl_tooltip.html @@ -0,0 +1,265 @@ + + + + + + + Fl_Tooltip Binding Map + + + + + + +

Fl_Tooltip Binding Map

+ + + + + + + + + +
Package name
Fl_TooltipFLTK.Tooltips
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+static Fl_Color color();
+
+function Get_Background_Color
+    return Color;
+
+static void color(Fl_Color c);
+
+procedure Set_Background_Color
+       (To : in Color);
+
+static Fl_Widget * current();
+
+function Get_Target
+    return access FLTK.Widgets.Widget'Class;
+
+static void current(Fl_Widget *);
+
+procedure Set_Target
+       (To : in FLTK.Widgets.Widget'Class);
+
+static float delay();
+
+function Get_Delay
+    return Float;
+
+static void delay(float f);
+
+procedure Set_Delay
+       (To : in Float);
+
+static void disable();
+
See static void enable(int b=1);
+static void enable(int b=1);
+
+procedure Set_Enabled
+       (To : in Boolean);
+
+static int enabled();
+
+function Is_Enabled
+    return Boolean;
+
+static void enter_area(Fl_Widget *w, int X, int Y, int W, int H, const char *tip);
+
+procedure Enter_Area
+       (Item       : in FLTK.Widgets.Widget'Class;
+        X, Y, W, H : in Integer;
+        Tip        : in String);
+
+static Fl_Font font();
+
+function Get_Text_Font
+    return Font_Kind;
+
+static void font(Fl_Font i);
+
+procedure Set_Text_Font
+       (To : in Font_Kind);
+
+static float hoverdelay();
+
+function Get_Hover_Delay
+    return Float;
+
+static void hoverdelay(float f);
+
+procedure Set_Hover_Delay
+       (To : in Float);
+
+static int margin_height();
+
+function Get_Margin_Height
+    return Natural;
+
+static void margin_height(int v);
+
Disabled pending ABI version check bugfix in FLTK
+static int margin_width();
+
+function Get_Margin_Width
+    return Natural;
+
+static void margin_width(int v);
+
Disabled pending ABI version check bugfix in FLTK
+static Fl_Fontsize size();
+
+function Get_Text_Size
+    return Font_Size;
+
+static void size(Fl_Fontsize s);
+
+procedure Set_Text_Size
+       (To : in Font_Size);
+
+static Fl_Color textcolor();
+
+function Get_Text_Color
+    return Color;
+
+static void textcolor(Fl_Color c);
+
+procedure Set_Text_Color
+       (To : in Color);
+
+static int wrap_width();
+
+function Get_Wrap_Width
+    return Natural;
+
+static void wrap_width(int v);
+
Disabled pending ABI version check bugfix in FLTK
+ + + + + diff --git a/doc/map.css b/doc/map.css new file mode 100644 index 0000000..98513fe --- /dev/null +++ b/doc/map.css @@ -0,0 +1,38 @@ + + +body { + width: 90%; + margin-left: 2em; + margin-right: 2em; +} + + +table.package, table.type { + min-width: 30%; +} + +table.function { + min-width: 60%; +} + +table { + margin-top: 4em; + margin-bottom: 4em; + border: 1px solid black; +} + + +th { + padding-top: 0.5em; + padding-bottom: 0.5em; + border: 1px solid black; +} + + +td { + width: 50%; + padding: 0.5em 0.5em 0.5em 0.5em; + border: 1px solid black; +} + + diff --git a/progress.txt b/progress.txt index d8504e7..b65afdb 100644 --- a/progress.txt +++ b/progress.txt @@ -12,6 +12,19 @@ Overall estimate: ???% Polished: +FLTK.Tooltips +FLTK.Widgets.Boxes +FLTK.Widgets.Buttons +FLTK.Widgets.Buttons.Enter +FLTK.Widgets.Buttons.Light +FLTK.Widgets.Buttons.Light.Check +FLTK.Widgets.Buttons.Light.Radio +FLTK.Widgets.Buttons.Light.Round +FLTK.Widgets.Buttons.Light.Round.Radio +FLTK.Widgets.Buttons.Radio +FLTK.Widgets.Buttons.Repeat +FLTK.Widgets.Buttons.Toggle + @@ -32,18 +45,6 @@ FLTK.Images.RGB.JPEG FLTK.Images.RGB.PNG FLTK.Images.RGB.PNM FLTK.Images.Shared -FLTK.Tooltips -FLTK.Widgets.Boxes -FLTK.Widgets.Buttons -FLTK.Widgets.Buttons.Enter -FLTK.Widgets.Buttons.Light -FLTK.Widgets.Buttons.Light.Check -FLTK.Widgets.Buttons.Light.Radio -FLTK.Widgets.Buttons.Light.Round -FLTK.Widgets.Buttons.Light.Round.Radio -FLTK.Widgets.Buttons.Radio -FLTK.Widgets.Buttons.Repeat -FLTK.Widgets.Buttons.Toggle FLTK.Widgets.Charts FLTK.Widgets.Clocks FLTK.Widgets.Clocks.Updated @@ -134,12 +135,17 @@ FL_GL_Window FL_Glut_Window FL_Cairo_Window + +(all these have to be done to put something in the polished category) + - mark all methods as inline - make sure all C++ reinterpret_cast for methods is to the Fl object, not the My object, because inheriting -- consistent unicode utf-8 support (is this even fully supported by FLTK?) +- consistent unicode utf-8 support (is this even fully supported by FLTK? if not, nevermind...) - make all protected methods available - check FLTK library internals to see which char* return values need dealloc - remove custom exception types in favour of Program_Error? +- qualify all C++ virtual method calls with the class name to prevent dynamic dispatch on C++ side +- provide documentation for how C++ methods map to Ada functions and procedures diff --git a/src/c_fl_box.h b/src/c_fl_box.h index 4c61c4e..10e0d5f 100644 --- a/src/c_fl_box.h +++ b/src/c_fl_box.h @@ -11,16 +11,16 @@ typedef void* BOX; -extern "C" void box_set_draw_hook(BOX n, void * d); -extern "C" void fl_box_draw(BOX n); -extern "C" void box_set_handle_hook(BOX n, void * h); -extern "C" int fl_box_handle(BOX n, int e); +extern "C" inline void box_set_draw_hook(BOX n, void * d); +extern "C" inline void fl_box_draw(BOX n); +extern "C" inline void box_set_handle_hook(BOX n, void * h); +extern "C" inline int fl_box_handle(BOX n, int e); -extern "C" BOX new_fl_box(int x, int y, int w, int h, char * label); -extern "C" void free_fl_box(BOX b); +extern "C" inline BOX new_fl_box(int x, int y, int w, int h, char * label); +extern "C" inline void free_fl_box(BOX b); #endif diff --git a/src/c_fl_button.cpp b/src/c_fl_button.cpp index bdd3eb3..749913d 100644 --- a/src/c_fl_button.cpp +++ b/src/c_fl_button.cpp @@ -71,34 +71,34 @@ void free_fl_button(BUTTON b) { int fl_button_get_state(BUTTON b) { - return reinterpret_cast(b)->value(); + return reinterpret_cast(b)->Fl_Button::value(); } void fl_button_set_state(BUTTON b, int s) { - reinterpret_cast(b)->value(s); + reinterpret_cast(b)->Fl_Button::value(s); } void fl_button_set_only(BUTTON b) { - reinterpret_cast(b)->setonly(); + reinterpret_cast(b)->Fl_Button::setonly(); } int fl_button_get_down_box(BUTTON b) { - return reinterpret_cast(b)->down_box(); + return reinterpret_cast(b)->Fl_Button::down_box(); } void fl_button_set_down_box(BUTTON b, int t) { - reinterpret_cast(b)->down_box(static_cast(t)); + reinterpret_cast(b)->Fl_Button::down_box(static_cast(t)); } int fl_button_get_shortcut(BUTTON b) { - return reinterpret_cast(b)->shortcut(); + return reinterpret_cast(b)->Fl_Button::shortcut(); } void fl_button_set_shortcut(BUTTON b, int k) { - reinterpret_cast(b)->shortcut(k); + reinterpret_cast(b)->Fl_Button::shortcut(k); } diff --git a/src/c_fl_button.h b/src/c_fl_button.h index 33120ad..2a71fd2 100644 --- a/src/c_fl_button.h +++ b/src/c_fl_button.h @@ -11,29 +11,29 @@ typedef void* BUTTON; -extern "C" void button_set_draw_hook(BUTTON b, void * d); -extern "C" void fl_button_draw(BUTTON b); -extern "C" void button_set_handle_hook(BUTTON b, void * h); -extern "C" int fl_button_handle(BUTTON b, int e); +extern "C" inline void button_set_draw_hook(BUTTON b, void * d); +extern "C" inline void fl_button_draw(BUTTON b); +extern "C" inline void button_set_handle_hook(BUTTON b, void * h); +extern "C" inline int fl_button_handle(BUTTON b, int e); -extern "C" BUTTON new_fl_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_button(BUTTON b); +extern "C" inline BUTTON new_fl_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_button(BUTTON b); -extern "C" int fl_button_get_state(BUTTON b); -extern "C" void fl_button_set_state(BUTTON b, int s); -extern "C" void fl_button_set_only(BUTTON b); +extern "C" inline int fl_button_get_state(BUTTON b); +extern "C" inline void fl_button_set_state(BUTTON b, int s); +extern "C" inline void fl_button_set_only(BUTTON b); -extern "C" int fl_button_get_down_box(BUTTON b); -extern "C" void fl_button_set_down_box(BUTTON b, int t); -extern "C" int fl_button_get_shortcut(BUTTON b); -extern "C" void fl_button_set_shortcut(BUTTON b, int k); +extern "C" inline int fl_button_get_down_box(BUTTON b); +extern "C" inline void fl_button_set_down_box(BUTTON b, int t); +extern "C" inline int fl_button_get_shortcut(BUTTON b); +extern "C" inline void fl_button_set_shortcut(BUTTON b, int k); #endif diff --git a/src/c_fl_check_button.h b/src/c_fl_check_button.h index 24fff48..fb415e9 100644 --- a/src/c_fl_check_button.h +++ b/src/c_fl_check_button.h @@ -11,16 +11,16 @@ typedef void* CHECKBUTTON; -extern "C" void check_button_set_draw_hook(CHECKBUTTON b, void * d); -extern "C" void fl_check_button_draw(CHECKBUTTON b); -extern "C" void check_button_set_handle_hook(CHECKBUTTON b, void * h); -extern "C" int fl_check_button_handle(CHECKBUTTON b, int e); +extern "C" inline void check_button_set_draw_hook(CHECKBUTTON b, void * d); +extern "C" inline void fl_check_button_draw(CHECKBUTTON b); +extern "C" inline void check_button_set_handle_hook(CHECKBUTTON b, void * h); +extern "C" inline int fl_check_button_handle(CHECKBUTTON b, int e); -extern "C" CHECKBUTTON new_fl_check_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_check_button(CHECKBUTTON b); +extern "C" inline CHECKBUTTON new_fl_check_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_check_button(CHECKBUTTON b); #endif diff --git a/src/c_fl_light_button.h b/src/c_fl_light_button.h index 1a9fab4..7c4a258 100644 --- a/src/c_fl_light_button.h +++ b/src/c_fl_light_button.h @@ -11,16 +11,16 @@ typedef void* LIGHTBUTTON; -extern "C" void light_button_set_draw_hook(LIGHTBUTTON b, void * d); -extern "C" void fl_light_button_draw(LIGHTBUTTON b); -extern "C" void light_button_set_handle_hook(LIGHTBUTTON b, void * h); -extern "C" int fl_light_button_handle(LIGHTBUTTON b, int e); +extern "C" inline void light_button_set_draw_hook(LIGHTBUTTON b, void * d); +extern "C" inline void fl_light_button_draw(LIGHTBUTTON b); +extern "C" inline void light_button_set_handle_hook(LIGHTBUTTON b, void * h); +extern "C" inline int fl_light_button_handle(LIGHTBUTTON b, int e); -extern "C" LIGHTBUTTON new_fl_light_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_light_button(LIGHTBUTTON b); +extern "C" inline LIGHTBUTTON new_fl_light_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_light_button(LIGHTBUTTON b); #endif diff --git a/src/c_fl_radio_button.h b/src/c_fl_radio_button.h index 0a517e8..3b85026 100644 --- a/src/c_fl_radio_button.h +++ b/src/c_fl_radio_button.h @@ -11,16 +11,16 @@ typedef void* RADIOBUTTON; -extern "C" void radio_button_set_draw_hook(RADIOBUTTON b, void * d); -extern "C" void fl_radio_button_draw(RADIOBUTTON b); -extern "C" void radio_button_set_handle_hook(RADIOBUTTON b, void * h); -extern "C" int fl_radio_button_handle(RADIOBUTTON b, int e); +extern "C" inline void radio_button_set_draw_hook(RADIOBUTTON b, void * d); +extern "C" inline void fl_radio_button_draw(RADIOBUTTON b); +extern "C" inline void radio_button_set_handle_hook(RADIOBUTTON b, void * h); +extern "C" inline int fl_radio_button_handle(RADIOBUTTON b, int e); -extern "C" RADIOBUTTON new_fl_radio_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_radio_button(RADIOBUTTON b); +extern "C" inline RADIOBUTTON new_fl_radio_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_radio_button(RADIOBUTTON b); #endif diff --git a/src/c_fl_radio_light_button.h b/src/c_fl_radio_light_button.h index 57d56b0..546ed85 100644 --- a/src/c_fl_radio_light_button.h +++ b/src/c_fl_radio_light_button.h @@ -11,16 +11,16 @@ typedef void* RADIOLIGHTBUTTON; -extern "C" void radio_light_button_set_draw_hook(RADIOLIGHTBUTTON b, void * d); -extern "C" void fl_radio_light_button_draw(RADIOLIGHTBUTTON b); -extern "C" void radio_light_button_set_handle_hook(RADIOLIGHTBUTTON b, void * h); -extern "C" int fl_radio_light_button_handle(RADIOLIGHTBUTTON b, int e); +extern "C" inline void radio_light_button_set_draw_hook(RADIOLIGHTBUTTON b, void * d); +extern "C" inline void fl_radio_light_button_draw(RADIOLIGHTBUTTON b); +extern "C" inline void radio_light_button_set_handle_hook(RADIOLIGHTBUTTON b, void * h); +extern "C" inline int fl_radio_light_button_handle(RADIOLIGHTBUTTON b, int e); -extern "C" RADIOLIGHTBUTTON new_fl_radio_light_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_radio_light_button(RADIOLIGHTBUTTON b); +extern "C" inline RADIOLIGHTBUTTON new_fl_radio_light_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_radio_light_button(RADIOLIGHTBUTTON b); #endif diff --git a/src/c_fl_radio_round_button.h b/src/c_fl_radio_round_button.h index 04c8748..b4d8c3b 100644 --- a/src/c_fl_radio_round_button.h +++ b/src/c_fl_radio_round_button.h @@ -11,16 +11,16 @@ typedef void* RADIOROUNDBUTTON; -extern "C" void radio_round_button_set_draw_hook(RADIOROUNDBUTTON b, void * d); -extern "C" void fl_radio_round_button_draw(RADIOROUNDBUTTON b); -extern "C" void radio_round_button_set_handle_hook(RADIOROUNDBUTTON b, void * h); -extern "C" int fl_radio_round_button_handle(RADIOROUNDBUTTON b, int e); +extern "C" inline void radio_round_button_set_draw_hook(RADIOROUNDBUTTON b, void * d); +extern "C" inline void fl_radio_round_button_draw(RADIOROUNDBUTTON b); +extern "C" inline void radio_round_button_set_handle_hook(RADIOROUNDBUTTON b, void * h); +extern "C" inline int fl_radio_round_button_handle(RADIOROUNDBUTTON b, int e); -extern "C" RADIOROUNDBUTTON new_fl_radio_round_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_radio_round_button(RADIOROUNDBUTTON b); +extern "C" inline RADIOROUNDBUTTON new_fl_radio_round_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_radio_round_button(RADIOROUNDBUTTON b); #endif diff --git a/src/c_fl_repeat_button.h b/src/c_fl_repeat_button.h index fdc3320..d24024e 100644 --- a/src/c_fl_repeat_button.h +++ b/src/c_fl_repeat_button.h @@ -11,16 +11,16 @@ typedef void* REPEATBUTTON; -extern "C" void repeat_button_set_draw_hook(REPEATBUTTON b, void * d); -extern "C" void fl_repeat_button_draw(REPEATBUTTON b); -extern "C" void repeat_button_set_handle_hook(REPEATBUTTON b, void * h); -extern "C" int fl_repeat_button_handle(REPEATBUTTON b, int e); +extern "C" inline void repeat_button_set_draw_hook(REPEATBUTTON b, void * d); +extern "C" inline void fl_repeat_button_draw(REPEATBUTTON b); +extern "C" inline void repeat_button_set_handle_hook(REPEATBUTTON b, void * h); +extern "C" inline int fl_repeat_button_handle(REPEATBUTTON b, int e); -extern "C" REPEATBUTTON new_fl_repeat_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_repeat_button(REPEATBUTTON b); +extern "C" inline REPEATBUTTON new_fl_repeat_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_repeat_button(REPEATBUTTON b); #endif diff --git a/src/c_fl_return_button.h b/src/c_fl_return_button.h index 59928a7..b2ebf44 100644 --- a/src/c_fl_return_button.h +++ b/src/c_fl_return_button.h @@ -11,16 +11,16 @@ typedef void* RETURNBUTTON; -extern "C" void return_button_set_draw_hook(RETURNBUTTON b, void * d); -extern "C" void fl_return_button_draw(RETURNBUTTON b); -extern "C" void return_button_set_handle_hook(RETURNBUTTON b, void * h); -extern "C" int fl_return_button_handle(RETURNBUTTON b, int e); +extern "C" inline void return_button_set_draw_hook(RETURNBUTTON b, void * d); +extern "C" inline void fl_return_button_draw(RETURNBUTTON b); +extern "C" inline void return_button_set_handle_hook(RETURNBUTTON b, void * h); +extern "C" inline int fl_return_button_handle(RETURNBUTTON b, int e); -extern "C" RETURNBUTTON new_fl_return_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_return_button(RETURNBUTTON b); +extern "C" inline RETURNBUTTON new_fl_return_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_return_button(RETURNBUTTON b); #endif diff --git a/src/c_fl_round_button.h b/src/c_fl_round_button.h index f812746..8deecc9 100644 --- a/src/c_fl_round_button.h +++ b/src/c_fl_round_button.h @@ -11,16 +11,16 @@ typedef void* ROUNDBUTTON; -extern "C" void round_button_set_draw_hook(ROUNDBUTTON b, void * d); -extern "C" void fl_round_button_draw(ROUNDBUTTON b); -extern "C" void round_button_set_handle_hook(ROUNDBUTTON b, void * h); -extern "C" int fl_round_button_handle(ROUNDBUTTON b, int e); +extern "C" inline void round_button_set_draw_hook(ROUNDBUTTON b, void * d); +extern "C" inline void fl_round_button_draw(ROUNDBUTTON b); +extern "C" inline void round_button_set_handle_hook(ROUNDBUTTON b, void * h); +extern "C" inline int fl_round_button_handle(ROUNDBUTTON b, int e); -extern "C" ROUNDBUTTON new_fl_round_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_round_button(ROUNDBUTTON b); +extern "C" inline ROUNDBUTTON new_fl_round_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_round_button(ROUNDBUTTON b); #endif diff --git a/src/c_fl_toggle_button.h b/src/c_fl_toggle_button.h index 88dcbae..af32249 100644 --- a/src/c_fl_toggle_button.h +++ b/src/c_fl_toggle_button.h @@ -11,16 +11,16 @@ typedef void* TOGGLEBUTTON; -extern "C" void toggle_button_set_draw_hook(TOGGLEBUTTON b, void * d); -extern "C" void fl_toggle_button_draw(TOGGLEBUTTON b); -extern "C" void toggle_button_set_handle_hook(TOGGLEBUTTON b, void * h); -extern "C" int fl_toggle_button_handle(TOGGLEBUTTON b, int e); +extern "C" inline void toggle_button_set_draw_hook(TOGGLEBUTTON b, void * d); +extern "C" inline void fl_toggle_button_draw(TOGGLEBUTTON b); +extern "C" inline void toggle_button_set_handle_hook(TOGGLEBUTTON b, void * h); +extern "C" inline int fl_toggle_button_handle(TOGGLEBUTTON b, int e); -extern "C" TOGGLEBUTTON new_fl_toggle_button(int x, int y, int w, int h, char* label); -extern "C" void free_fl_toggle_button(TOGGLEBUTTON b); +extern "C" inline TOGGLEBUTTON new_fl_toggle_button(int x, int y, int w, int h, char* label); +extern "C" inline void free_fl_toggle_button(TOGGLEBUTTON b); #endif diff --git a/src/c_fl_tooltip.h b/src/c_fl_tooltip.h index b5a3644..b45657a 100644 --- a/src/c_fl_tooltip.h +++ b/src/c_fl_tooltip.h @@ -6,35 +6,35 @@ -extern "C" void * fl_tooltip_get_current(void); -extern "C" void fl_tooltip_set_current(void * i); -extern "C" int fl_tooltip_enabled(void); -extern "C" void fl_tooltip_enable(int v); -extern "C" void fl_tooltip_enter_area(void * i, int x, int y, int w, int h, const char * t); - - -extern "C" float fl_tooltip_get_delay(void); -extern "C" void fl_tooltip_set_delay(float v); -extern "C" float fl_tooltip_get_hoverdelay(void); -extern "C" void fl_tooltip_set_hoverdelay(float v); - - -extern "C" unsigned int fl_tooltip_get_color(void); -extern "C" void fl_tooltip_set_color(unsigned int v); -extern "C" int fl_tooltip_get_margin_height(void); -//extern "C" void fl_tooltip_set_margin_height(int v); -extern "C" int fl_tooltip_get_margin_width(void); -//extern "C" void fl_tooltip_set_margin_width(int v); -extern "C" int fl_tooltip_get_wrap_width(void); -//extern "C" void fl_tooltip_set_wrap_width(int v); - - -extern "C" unsigned int fl_tooltip_get_textcolor(void); -extern "C" void fl_tooltip_set_textcolor(unsigned int v); -extern "C" int fl_tooltip_get_font(void); -extern "C" void fl_tooltip_set_font(int v); -extern "C" int fl_tooltip_get_size(void); -extern "C" void fl_tooltip_set_size(int v); +extern "C" inline void * fl_tooltip_get_current(void); +extern "C" inline void fl_tooltip_set_current(void * i); +extern "C" inline int fl_tooltip_enabled(void); +extern "C" inline void fl_tooltip_enable(int v); +extern "C" inline void fl_tooltip_enter_area(void * i, int x, int y, int w, int h, const char * t); + + +extern "C" inline float fl_tooltip_get_delay(void); +extern "C" inline void fl_tooltip_set_delay(float v); +extern "C" inline float fl_tooltip_get_hoverdelay(void); +extern "C" inline void fl_tooltip_set_hoverdelay(float v); + + +extern "C" inline unsigned int fl_tooltip_get_color(void); +extern "C" inline void fl_tooltip_set_color(unsigned int v); +extern "C" inline int fl_tooltip_get_margin_height(void); +//extern "C" inline void fl_tooltip_set_margin_height(int v); +extern "C" inline int fl_tooltip_get_margin_width(void); +//extern "C" inline void fl_tooltip_set_margin_width(int v); +extern "C" inline int fl_tooltip_get_wrap_width(void); +//extern "C" inline void fl_tooltip_set_wrap_width(int v); + + +extern "C" inline unsigned int fl_tooltip_get_textcolor(void); +extern "C" inline void fl_tooltip_set_textcolor(unsigned int v); +extern "C" inline int fl_tooltip_get_font(void); +extern "C" inline void fl_tooltip_set_font(int v); +extern "C" inline int fl_tooltip_get_size(void); +extern "C" inline void fl_tooltip_set_size(int v); #endif diff --git a/src/fltk-dialogs.adb b/src/fltk-dialogs.adb index 20f4c6b..46c14ad 100644 --- a/src/fltk-dialogs.adb +++ b/src/fltk-dialogs.adb @@ -259,7 +259,7 @@ package body FLTK.Dialogs is function Get_Message_Icon - return FLTK.Widgets.Boxes.Box_Cursor is + return FLTK.Widgets.Boxes.Box_Reference is begin return (Data => Icon_Box'Access); end Get_Message_Icon; diff --git a/src/fltk-dialogs.ads b/src/fltk-dialogs.ads index 0368834..03d1416 100644 --- a/src/fltk-dialogs.ads +++ b/src/fltk-dialogs.ads @@ -78,7 +78,7 @@ package FLTK.Dialogs is Size : in Font_Size); function Get_Message_Icon - return FLTK.Widgets.Boxes.Box_Cursor; + return FLTK.Widgets.Boxes.Box_Reference; procedure Set_Message_Title (To : in String); diff --git a/src/fltk-tooltips.adb b/src/fltk-tooltips.adb index 38bcf66..720e417 100644 --- a/src/fltk-tooltips.adb +++ b/src/fltk-tooltips.adb @@ -7,7 +7,8 @@ with use type - Interfaces.C.int; + Interfaces.C.int, + System.Address; package body FLTK.Tooltips is @@ -16,24 +17,29 @@ package body FLTK.Tooltips is function fl_tooltip_get_current return System.Address; pragma Import (C, fl_tooltip_get_current, "fl_tooltip_get_current"); + pragma Inline (fl_tooltip_get_current); procedure fl_tooltip_set_current (I : in System.Address); pragma Import (C, fl_tooltip_set_current, "fl_tooltip_set_current"); + pragma Inline (fl_tooltip_set_current); function fl_tooltip_enabled return Interfaces.C.int; pragma Import (C, fl_tooltip_enabled, "fl_tooltip_enabled"); + pragma Inline (fl_tooltip_enabled); procedure fl_tooltip_enable (V : in Interfaces.C.int); pragma Import (C, fl_tooltip_enable, "fl_tooltip_enable"); + pragma Inline (fl_tooltip_enable); procedure fl_tooltip_enter_area (I : in System.Address; X, Y, W, H : in Interfaces.C.int; T : in Interfaces.C.char_array); pragma Import (C, fl_tooltip_enter_area, "fl_tooltip_enter_area"); + pragma Inline (fl_tooltip_enter_area); @@ -41,18 +47,22 @@ package body FLTK.Tooltips is function fl_tooltip_get_delay return Interfaces.C.C_float; pragma Import (C, fl_tooltip_get_delay, "fl_tooltip_get_delay"); + pragma Inline (fl_tooltip_get_delay); procedure fl_tooltip_set_delay (V : in Interfaces.C.C_float); pragma Import (C, fl_tooltip_set_delay, "fl_tooltip_set_delay"); + pragma Inline (fl_tooltip_set_delay); function fl_tooltip_get_hoverdelay return Interfaces.C.C_float; pragma Import (C, fl_tooltip_get_hoverdelay, "fl_tooltip_get_hoverdelay"); + pragma Inline (fl_tooltip_get_hoverdelay); procedure fl_tooltip_set_hoverdelay (V : in Interfaces.C.C_float); pragma Import (C, fl_tooltip_set_hoverdelay, "fl_tooltip_set_hoverdelay"); + pragma Inline (fl_tooltip_set_hoverdelay); @@ -60,34 +70,42 @@ package body FLTK.Tooltips is function fl_tooltip_get_color return Interfaces.C.unsigned; pragma Import (C, fl_tooltip_get_color, "fl_tooltip_get_color"); + pragma Inline (fl_tooltip_get_color); procedure fl_tooltip_set_color (V : in Interfaces.C.unsigned); pragma Import (C, fl_tooltip_set_color, "fl_tooltip_set_color"); + pragma Inline (fl_tooltip_set_color); function fl_tooltip_get_margin_height return Interfaces.C.int; pragma Import (C, fl_tooltip_get_margin_height, "fl_tooltip_get_margin_height"); + pragma Inline (fl_tooltip_get_margin_height); -- procedure fl_tooltip_set_margin_height -- (V : in Interfaces.C.int); -- pragma Import (C, fl_tooltip_set_margin_height, "fl_tooltip_set_margin_height"); + -- pragma Inline (fl_tooltip_set_margin_height); function fl_tooltip_get_margin_width return Interfaces.C.int; pragma Import (C, fl_tooltip_get_margin_width, "fl_tooltip_get_margin_width"); + pragma Inline (fl_tooltip_get_margin_width); -- procedure fl_tooltip_set_margin_width -- (V : in Interfaces.C.int); -- pragma Import (C, fl_tooltip_set_margin_width, "fl_tooltip_set_margin_width"); + -- pragma Inline (fl_tooltip_set_margin_width); function fl_tooltip_get_wrap_width return Interfaces.C.int; pragma Import (C, fl_tooltip_get_wrap_width, "fl_tooltip_get_wrap_width"); + pragma Inline (fl_tooltip_get_wrap_width); -- procedure fl_tooltip_set_wrap_width -- (V : in Interfaces.C.int); -- pragma Import (C, fl_tooltip_set_wrap_width, "fl_tooltip_set_wrap_width"); + -- pragma Inline (fl_tooltip_set_wrap_width); @@ -95,26 +113,32 @@ package body FLTK.Tooltips is function fl_tooltip_get_textcolor return Interfaces.C.unsigned; pragma Import (C, fl_tooltip_get_textcolor, "fl_tooltip_get_textcolor"); + pragma Inline (fl_tooltip_get_textcolor); procedure fl_tooltip_set_textcolor (V : in Interfaces.C.unsigned); pragma Import (C, fl_tooltip_set_textcolor, "fl_tooltip_set_textcolor"); + pragma Inline (fl_tooltip_set_textcolor); function fl_tooltip_get_font return Interfaces.C.int; pragma Import (C, fl_tooltip_get_font, "fl_tooltip_get_font"); + pragma Inline (fl_tooltip_get_font); procedure fl_tooltip_set_font (V : in Interfaces.C.int); pragma Import (C, fl_tooltip_set_font, "fl_tooltip_set_font"); + pragma Inline (fl_tooltip_set_font); function fl_tooltip_get_size return Interfaces.C.int; pragma Import (C, fl_tooltip_get_size, "fl_tooltip_get_size"); + pragma Inline (fl_tooltip_get_size); procedure fl_tooltip_set_size (V : in Interfaces.C.int); pragma Import (C, fl_tooltip_set_size, "fl_tooltip_set_size"); + pragma Inline (fl_tooltip_set_size); @@ -123,6 +147,7 @@ package body FLTK.Tooltips is (W : in System.Address) return System.Address; pragma Import (C, fl_widget_get_user_data, "fl_widget_get_user_data"); + pragma Inline (fl_widget_get_user_data); package Widget_Convert is new System.Address_To_Access_Conversions (FLTK.Widgets.Widget'Class); @@ -134,10 +159,12 @@ package body FLTK.Tooltips is return access FLTK.Widgets.Widget'Class is Widget_Ptr : System.Address := fl_tooltip_get_current; - Actual_Widget : access FLTK.Widgets.Widget'Class := - Widget_Convert.To_Pointer (fl_widget_get_user_data (Widget_Ptr)); begin - return Actual_Widget; + if Widget_Ptr /= System.Null_Address then + return Widget_Convert.To_Pointer (fl_widget_get_user_data (Widget_Ptr)); + else + return null; + end if; end Get_Target; diff --git a/src/fltk-tooltips.ads b/src/fltk-tooltips.ads index 153825f..f4b3044 100644 --- a/src/fltk-tooltips.ads +++ b/src/fltk-tooltips.ads @@ -89,5 +89,39 @@ package FLTK.Tooltips is (To : in Font_Size); +private + + + pragma Inline (Get_Target); + pragma Inline (Set_Target); + pragma Inline (Is_Enabled); + pragma Inline (Set_Enabled); + pragma Inline (Enter_Area); + + + pragma Inline (Get_Delay); + pragma Inline (Set_Delay); + pragma Inline (Get_Hover_Delay); + pragma Inline (Set_Hover_Delay); + + + pragma Inline (Get_Background_Color); + pragma Inline (Set_Background_Color); + pragma Inline (Get_Margin_Height); + -- pragma Inline (Set_Margin_Height); + pragma Inline (Get_Margin_Width); + -- pragma Inline (Set_Margin_Width); + pragma Inline (Get_Wrap_Width); + -- pragma Inline (Set_Wrap_Width); + + + pragma Inline (Get_Text_Color); + pragma Inline (Set_Text_Color); + pragma Inline (Get_Text_Font); + pragma Inline (Set_Text_Font); + pragma Inline (Get_Text_Size); + pragma Inline (Set_Text_Size); + + end FLTK.Tooltips; diff --git a/src/fltk-widgets-boxes.adb b/src/fltk-widgets-boxes.adb index e60f0f7..b6f7fc6 100644 --- a/src/fltk-widgets-boxes.adb +++ b/src/fltk-widgets-boxes.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Boxes is procedure box_set_draw_hook (W, D : in System.Address); pragma Import (C, box_set_draw_hook, "box_set_draw_hook"); + pragma Inline (box_set_draw_hook); procedure box_set_handle_hook (W, H : in System.Address); pragma Import (C, box_set_handle_hook, "box_set_handle_hook"); + pragma Inline (box_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Boxes is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_box, "new_fl_box"); + pragma Inline (new_fl_box); procedure free_fl_box (B : in System.Address); pragma Import (C, free_fl_box, "free_fl_box"); + pragma Inline (free_fl_box); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Boxes is procedure fl_box_draw (W : in System.Address); pragma Import (C, fl_box_draw, "fl_box_draw"); + pragma Inline (fl_box_draw); function fl_box_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_box_handle, "fl_box_handle"); + pragma Inline (fl_box_handle); diff --git a/src/fltk-widgets-boxes.ads b/src/fltk-widgets-boxes.ads index ef551b5..db64e0c 100644 --- a/src/fltk-widgets-boxes.ads +++ b/src/fltk-widgets-boxes.ads @@ -5,7 +5,7 @@ package FLTK.Widgets.Boxes is type Box is new Widget with private; - type Box_Cursor (Data : access Box'Class) is limited null record + type Box_Reference (Data : not null access Box'Class) is limited null record with Implicit_Dereference => Data; @@ -41,5 +41,11 @@ private (This : in out Box); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Boxes; diff --git a/src/fltk-widgets-buttons-enter.adb b/src/fltk-widgets-buttons-enter.adb index 2fcb2a8..2edd991 100644 --- a/src/fltk-widgets-buttons-enter.adb +++ b/src/fltk-widgets-buttons-enter.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Enter is procedure return_button_set_draw_hook (W, D : in System.Address); pragma Import (C, return_button_set_draw_hook, "return_button_set_draw_hook"); + pragma Inline (return_button_set_draw_hook); procedure return_button_set_handle_hook (W, H : in System.Address); pragma Import (C, return_button_set_handle_hook, "return_button_set_handle_hook"); + pragma Inline (return_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Enter is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_return_button, "new_fl_return_button"); + pragma Inline (new_fl_return_button); procedure free_fl_return_button (B : in System.Address); pragma Import (C, free_fl_return_button, "free_fl_return_button"); + pragma Inline (free_fl_return_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Enter is procedure fl_return_button_draw (W : in System.Address); pragma Import (C, fl_return_button_draw, "fl_return_button_draw"); + pragma Inline (fl_return_button_draw); function fl_return_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_return_button_handle, "fl_return_button_handle"); + pragma Inline (fl_return_button_handle); diff --git a/src/fltk-widgets-buttons-enter.ads b/src/fltk-widgets-buttons-enter.ads index 1b9ceab..8492cca 100644 --- a/src/fltk-widgets-buttons-enter.ads +++ b/src/fltk-widgets-buttons-enter.ads @@ -8,6 +8,9 @@ package FLTK.Widgets.Buttons.Enter is type Enter_Button is new Button with private; + type Enter_Button_Reference (Data : not null access Enter_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -41,5 +44,11 @@ private (This : in out Enter_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Enter; diff --git a/src/fltk-widgets-buttons-light-check.adb b/src/fltk-widgets-buttons-light-check.adb index df54720..415a91b 100644 --- a/src/fltk-widgets-buttons-light-check.adb +++ b/src/fltk-widgets-buttons-light-check.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Light.Check is procedure check_button_set_draw_hook (W, D : in System.Address); pragma Import (C, check_button_set_draw_hook, "check_button_set_draw_hook"); + pragma Inline (check_button_set_draw_hook); procedure check_button_set_handle_hook (W, H : in System.Address); pragma Import (C, check_button_set_handle_hook, "check_button_set_handle_hook"); + pragma Inline (check_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Light.Check is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_check_button, "new_fl_check_button"); + pragma Inline (new_fl_check_button); procedure free_fl_check_button (B : in System.Address); pragma Import (C, free_fl_check_button, "free_fl_check_button"); + pragma Inline (free_fl_check_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Light.Check is procedure fl_check_button_draw (W : in System.Address); pragma Import (C, fl_check_button_draw, "fl_check_button_draw"); + pragma Inline (fl_check_button_draw); function fl_check_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_check_button_handle, "fl_check_button_handle"); + pragma Inline (fl_check_button_handle); diff --git a/src/fltk-widgets-buttons-light-check.ads b/src/fltk-widgets-buttons-light-check.ads index 0e746d9..87ef863 100644 --- a/src/fltk-widgets-buttons-light-check.ads +++ b/src/fltk-widgets-buttons-light-check.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Light.Check is type Check_Button is new Light_Button with private; + type Check_Button_Reference (Data : not null access Check_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Check_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Light.Check; diff --git a/src/fltk-widgets-buttons-light-radio.adb b/src/fltk-widgets-buttons-light-radio.adb index 6df1abd..8f0db60 100644 --- a/src/fltk-widgets-buttons-light-radio.adb +++ b/src/fltk-widgets-buttons-light-radio.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Light.Radio is procedure radio_light_button_set_draw_hook (W, D : in System.Address); pragma Import (C, radio_light_button_set_draw_hook, "radio_light_button_set_draw_hook"); + pragma Inline (radio_light_button_set_draw_hook); procedure radio_light_button_set_handle_hook (W, H : in System.Address); pragma Import (C, radio_light_button_set_handle_hook, "radio_light_button_set_handle_hook"); + pragma Inline (radio_light_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Light.Radio is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_radio_light_button, "new_fl_radio_light_button"); + pragma Inline (new_fl_radio_light_button); procedure free_fl_radio_light_button (B : in System.Address); pragma Import (C, free_fl_radio_light_button, "free_fl_radio_light_button"); + pragma Inline (free_fl_radio_light_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Light.Radio is procedure fl_radio_light_button_draw (W : in System.Address); pragma Import (C, fl_radio_light_button_draw, "fl_radio_light_button_draw"); + pragma Inline (fl_radio_light_button_draw); function fl_radio_light_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_radio_light_button_handle, "fl_radio_light_button_handle"); + pragma Inline (fl_radio_light_button_handle); diff --git a/src/fltk-widgets-buttons-light-radio.ads b/src/fltk-widgets-buttons-light-radio.ads index 6536d5d..385de81 100644 --- a/src/fltk-widgets-buttons-light-radio.ads +++ b/src/fltk-widgets-buttons-light-radio.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Light.Radio is type Radio_Light_Button is new Light_Button with private; + type Radio_Light_Button_Reference (Data : not null access Radio_Light_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Radio_Light_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Light.Radio; diff --git a/src/fltk-widgets-buttons-light-round-radio.adb b/src/fltk-widgets-buttons-light-round-radio.adb index 6bdc8b3..b97b714 100644 --- a/src/fltk-widgets-buttons-light-round-radio.adb +++ b/src/fltk-widgets-buttons-light-round-radio.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Light.Round.Radio is procedure radio_round_button_set_draw_hook (W, D : in System.Address); pragma Import (C, radio_round_button_set_draw_hook, "radio_round_button_set_draw_hook"); + pragma Inline (radio_round_button_set_draw_hook); procedure radio_round_button_set_handle_hook (W, H : in System.Address); pragma Import (C, radio_round_button_set_handle_hook, "radio_round_button_set_handle_hook"); + pragma Inline (radio_round_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Light.Round.Radio is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_radio_round_button, "new_fl_radio_round_button"); + pragma Inline (new_fl_radio_round_button); procedure free_fl_radio_round_button (B : in System.Address); pragma Import (C, free_fl_radio_round_button, "free_fl_radio_round_button"); + pragma Inline (free_fl_radio_round_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Light.Round.Radio is procedure fl_radio_round_button_draw (W : in System.Address); pragma Import (C, fl_radio_round_button_draw, "fl_radio_round_button_draw"); + pragma Inline (fl_radio_round_button_draw); function fl_radio_round_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_radio_round_button_handle, "fl_radio_round_button_handle"); + pragma Inline (fl_radio_round_button_handle); diff --git a/src/fltk-widgets-buttons-light-round-radio.ads b/src/fltk-widgets-buttons-light-round-radio.ads index 00a3c90..a4715a8 100644 --- a/src/fltk-widgets-buttons-light-round-radio.ads +++ b/src/fltk-widgets-buttons-light-round-radio.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Light.Round.Radio is type Radio_Round_Button is new Round_Button with private; + type Radio_Round_Button_Reference (Data : not null access Radio_Round_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Radio_Round_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Light.Round.Radio; diff --git a/src/fltk-widgets-buttons-light-round.adb b/src/fltk-widgets-buttons-light-round.adb index 3287308..dd3fa29 100644 --- a/src/fltk-widgets-buttons-light-round.adb +++ b/src/fltk-widgets-buttons-light-round.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Light.Round is procedure round_button_set_draw_hook (W, D : in System.Address); pragma Import (C, round_button_set_draw_hook, "round_button_set_draw_hook"); + pragma Inline (round_button_set_draw_hook); procedure round_button_set_handle_hook (W, H : in System.Address); pragma Import (C, round_button_set_handle_hook, "round_button_set_handle_hook"); + pragma Inline (round_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Light.Round is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_round_button, "new_fl_round_button"); + pragma Inline (new_fl_round_button); procedure free_fl_round_button (B : in System.Address); pragma Import (C, free_fl_round_button, "free_fl_round_button"); + pragma Inline (free_fl_round_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Light.Round is procedure fl_round_button_draw (W : in System.Address); pragma Import (C, fl_round_button_draw, "fl_round_button_draw"); + pragma Inline (fl_round_button_draw); function fl_round_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_round_button_handle, "fl_round_button_handle"); + pragma Inline (fl_round_button_handle); diff --git a/src/fltk-widgets-buttons-light-round.ads b/src/fltk-widgets-buttons-light-round.ads index 22736b6..52d5e78 100644 --- a/src/fltk-widgets-buttons-light-round.ads +++ b/src/fltk-widgets-buttons-light-round.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Light.Round is type Round_Button is new Light_Button with private; + type Round_Button_Reference (Data : not null access Round_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Round_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Light.Round; diff --git a/src/fltk-widgets-buttons-light.adb b/src/fltk-widgets-buttons-light.adb index 21c9efc..dc258b2 100644 --- a/src/fltk-widgets-buttons-light.adb +++ b/src/fltk-widgets-buttons-light.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Light is procedure light_button_set_draw_hook (W, D : in System.Address); pragma Import (C, light_button_set_draw_hook, "light_button_set_draw_hook"); + pragma Inline (light_button_set_draw_hook); procedure light_button_set_handle_hook (W, H : in System.Address); pragma Import (C, light_button_set_handle_hook, "light_button_set_handle_hook"); + pragma Inline (light_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Light is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_light_button, "new_fl_light_button"); + pragma Inline (new_fl_light_button); procedure free_fl_light_button (B : in System.Address); pragma Import (C, free_fl_light_button, "free_fl_light_button"); + pragma Inline (free_fl_light_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Light is procedure fl_light_button_draw (W : in System.Address); pragma Import (C, fl_light_button_draw, "fl_light_button_draw"); + pragma Inline (fl_light_button_draw); function fl_light_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_light_button_handle, "fl_light_button_handle"); + pragma Inline (fl_light_button_handle); diff --git a/src/fltk-widgets-buttons-light.ads b/src/fltk-widgets-buttons-light.ads index b7429ed..e270ba9 100644 --- a/src/fltk-widgets-buttons-light.ads +++ b/src/fltk-widgets-buttons-light.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Light is type Light_Button is new Button with private; + type Light_Button_Reference (Data : not null access Light_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Light_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Light; diff --git a/src/fltk-widgets-buttons-radio.adb b/src/fltk-widgets-buttons-radio.adb index 6a5ff01..d6ae492 100644 --- a/src/fltk-widgets-buttons-radio.adb +++ b/src/fltk-widgets-buttons-radio.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Radio is procedure radio_button_set_draw_hook (W, D : in System.Address); pragma Import (C, radio_button_set_draw_hook, "radio_button_set_draw_hook"); + pragma Inline (radio_button_set_draw_hook); procedure radio_button_set_handle_hook (W, H : in System.Address); pragma Import (C, radio_button_set_handle_hook, "radio_button_set_handle_hook"); + pragma Inline (radio_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Radio is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_radio_button, "new_fl_radio_button"); + pragma Inline (new_fl_radio_button); procedure free_fl_radio_button (B : in System.Address); pragma Import (C, free_fl_radio_button, "free_fl_radio_button"); + pragma Inline (free_fl_radio_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Radio is procedure fl_radio_button_draw (W : in System.Address); pragma Import (C, fl_radio_button_draw, "fl_radio_button_draw"); + pragma Inline (fl_radio_button_draw); function fl_radio_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_radio_button_handle, "fl_radio_button_handle"); + pragma Inline (fl_radio_button_handle); diff --git a/src/fltk-widgets-buttons-radio.ads b/src/fltk-widgets-buttons-radio.ads index b62847a..2125af9 100644 --- a/src/fltk-widgets-buttons-radio.ads +++ b/src/fltk-widgets-buttons-radio.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Radio is type Radio_Button is new Button with private; + type Radio_Button_Reference (Data : not null access Radio_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Radio_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Radio; diff --git a/src/fltk-widgets-buttons-repeat.adb b/src/fltk-widgets-buttons-repeat.adb index 7bbc6b1..eaebeb4 100644 --- a/src/fltk-widgets-buttons-repeat.adb +++ b/src/fltk-widgets-buttons-repeat.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Repeat is procedure repeat_button_set_draw_hook (W, D : in System.Address); pragma Import (C, repeat_button_set_draw_hook, "repeat_button_set_draw_hook"); + pragma Inline (repeat_button_set_draw_hook); procedure repeat_button_set_handle_hook (W, H : in System.Address); pragma Import (C, repeat_button_set_handle_hook, "repeat_button_set_handle_hook"); + pragma Inline (repeat_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Repeat is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_repeat_button, "new_fl_repeat_button"); + pragma Inline (new_fl_repeat_button); procedure free_fl_repeat_button (B : in System.Address); pragma Import (C, free_fl_repeat_button, "free_fl_repeat_button"); + pragma Inline (free_fl_repeat_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Repeat is procedure fl_repeat_button_draw (W : in System.Address); pragma Import (C, fl_repeat_button_draw, "fl_repeat_button_draw"); + pragma Inline (fl_repeat_button_draw); function fl_repeat_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_repeat_button_handle, "fl_repeat_button_handle"); + pragma Inline (fl_repeat_button_handle); diff --git a/src/fltk-widgets-buttons-repeat.ads b/src/fltk-widgets-buttons-repeat.ads index 2f495db..0273741 100644 --- a/src/fltk-widgets-buttons-repeat.ads +++ b/src/fltk-widgets-buttons-repeat.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Repeat is type Repeat_Button is new Button with private; + type Repeat_Button_Reference (Data : not null access Repeat_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Repeat_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Repeat; diff --git a/src/fltk-widgets-buttons-toggle.adb b/src/fltk-widgets-buttons-toggle.adb index 60f8de3..bf945e5 100644 --- a/src/fltk-widgets-buttons-toggle.adb +++ b/src/fltk-widgets-buttons-toggle.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons.Toggle is procedure toggle_button_set_draw_hook (W, D : in System.Address); pragma Import (C, toggle_button_set_draw_hook, "toggle_button_set_draw_hook"); + pragma Inline (toggle_button_set_draw_hook); procedure toggle_button_set_handle_hook (W, H : in System.Address); pragma Import (C, toggle_button_set_handle_hook, "toggle_button_set_handle_hook"); + pragma Inline (toggle_button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons.Toggle is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_toggle_button, "new_fl_toggle_button"); + pragma Inline (new_fl_toggle_button); procedure free_fl_toggle_button (B : in System.Address); pragma Import (C, free_fl_toggle_button, "free_fl_toggle_button"); + pragma Inline (free_fl_toggle_button); @@ -40,12 +44,14 @@ package body FLTK.Widgets.Buttons.Toggle is procedure fl_toggle_button_draw (W : in System.Address); pragma Import (C, fl_toggle_button_draw, "fl_toggle_button_draw"); + pragma Inline (fl_toggle_button_draw); function fl_toggle_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_toggle_button_handle, "fl_toggle_button_handle"); + pragma Inline (fl_toggle_button_handle); diff --git a/src/fltk-widgets-buttons-toggle.ads b/src/fltk-widgets-buttons-toggle.ads index d2f26a1..90c898e 100644 --- a/src/fltk-widgets-buttons-toggle.ads +++ b/src/fltk-widgets-buttons-toggle.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons.Toggle is type Toggle_Button is new Button with private; + type Toggle_Button_Reference (Data : not null access Toggle_Button'Class) is + limited null record with Implicit_Dereference => Data; + @@ -38,5 +41,11 @@ private (This : in out Toggle_Button); + + + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons.Toggle; diff --git a/src/fltk-widgets-buttons.adb b/src/fltk-widgets-buttons.adb index 9024f8e..050c571 100644 --- a/src/fltk-widgets-buttons.adb +++ b/src/fltk-widgets-buttons.adb @@ -16,10 +16,12 @@ package body FLTK.Widgets.Buttons is procedure button_set_draw_hook (W, D : in System.Address); pragma Import (C, button_set_draw_hook, "button_set_draw_hook"); + pragma Inline (button_set_draw_hook); procedure button_set_handle_hook (W, H : in System.Address); pragma Import (C, button_set_handle_hook, "button_set_handle_hook"); + pragma Inline (button_set_handle_hook); @@ -29,10 +31,12 @@ package body FLTK.Widgets.Buttons is Text : in Interfaces.C.char_array) return System.Address; pragma Import (C, new_fl_button, "new_fl_button"); + pragma Inline (new_fl_button); procedure free_fl_button (B : in System.Address); pragma Import (C, free_fl_button, "free_fl_button"); + pragma Inline (free_fl_button); @@ -41,15 +45,18 @@ package body FLTK.Widgets.Buttons is (B : in System.Address) return Interfaces.C.int; pragma Import (C, fl_button_get_state, "fl_button_get_state"); + pragma Inline (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"); + pragma Inline (fl_button_set_state); procedure fl_button_set_only (B : in System.Address); pragma Import (C, fl_button_set_only, "fl_button_set_only"); + pragma Inline (fl_button_set_only); @@ -58,21 +65,25 @@ package body FLTK.Widgets.Buttons is (B : in System.Address) return Interfaces.C.int; pragma Import (C, fl_button_get_down_box, "fl_button_get_down_box"); + pragma Inline (fl_button_get_down_box); procedure fl_button_set_down_box (B : in System.Address; T : in Interfaces.C.int); pragma Import (C, fl_button_set_down_box, "fl_button_set_down_box"); + pragma Inline (fl_button_set_down_box); function fl_button_get_shortcut (B : in System.Address) return Interfaces.C.int; pragma Import (C, fl_button_get_shortcut, "fl_button_get_shortcut"); + pragma Inline (fl_button_get_shortcut); procedure fl_button_set_shortcut (B : in System.Address; T : in Interfaces.C.int); pragma Import (C, fl_button_set_shortcut, "fl_button_set_shortcut"); + pragma Inline (fl_button_set_shortcut); @@ -80,12 +91,14 @@ package body FLTK.Widgets.Buttons is procedure fl_button_draw (W : in System.Address); pragma Import (C, fl_button_draw, "fl_button_draw"); + pragma Inline (fl_button_draw); function fl_button_handle (W : in System.Address; E : in Interfaces.C.int) return Interfaces.C.int; pragma Import (C, fl_button_handle, "fl_button_handle"); + pragma Inline (fl_button_handle); diff --git a/src/fltk-widgets-buttons.ads b/src/fltk-widgets-buttons.ads index f740b32..7c70c2e 100644 --- a/src/fltk-widgets-buttons.ads +++ b/src/fltk-widgets-buttons.ads @@ -5,6 +5,9 @@ package FLTK.Widgets.Buttons is type Button is new Widget with private; + type Button_Reference (Data : not null access Button'Class) is limited null record + with Implicit_Dereference => Data; + type State is (Off, On); @@ -73,5 +76,18 @@ private (This : in out Button); + + + pragma Inline (Get_State); + pragma Inline (Set_State); + pragma Inline (Set_Only); + pragma Inline (Get_Down_Box); + pragma Inline (Set_Down_Box); + pragma Inline (Get_Shortcut); + pragma Inline (Set_Shortcut); + pragma Inline (Draw); + pragma Inline (Handle); + + end FLTK.Widgets.Buttons; -- cgit