summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2018-04-17 16:00:26 +1000
committerJed Barber <jjbarber@y7mail.com>2018-04-17 16:00:26 +1000
commit617353265e4dc4e0280b565f2cd9e7749ce52bfd (patch)
treeb03cbfad780fb426ef42660ff6e112cdcaeda9f4
parenta4b6a06f372923fb38ae4d3c7e0429ce93ea7748 (diff)
More polishing
-rw-r--r--doc/blank_template.html5
-rw-r--r--doc/common_dialogs.html263
-rw-r--r--doc/fl_clock.html107
-rw-r--r--doc/fl_clock_output.html184
-rw-r--r--doc/fl_double_window.html139
-rw-r--r--doc/fl_file_input.html155
-rw-r--r--doc/fl_float_input.html93
-rw-r--r--doc/fl_input.html545
-rw-r--r--doc/fl_int_input.html93
-rw-r--r--doc/fl_menu_window.html161
-rw-r--r--doc/fl_multiline_input.html84
-rw-r--r--doc/fl_multiline_output.html84
-rw-r--r--doc/fl_output.html84
-rw-r--r--doc/fl_round_clock.html93
-rw-r--r--doc/fl_secret_input.html86
-rw-r--r--doc/fl_single_window.html129
-rw-r--r--progress.txt36
-rw-r--r--src/c_fl_clock.cpp13
-rw-r--r--src/c_fl_clock.h18
-rw-r--r--src/c_fl_clock_output.cpp21
-rw-r--r--src/c_fl_clock_output.h27
-rw-r--r--src/c_fl_dialog.cpp4
-rw-r--r--src/c_fl_dialog.h41
-rw-r--r--src/c_fl_double_window.h20
-rw-r--r--src/c_fl_file_input.cpp11
-rw-r--r--src/c_fl_file_input.h24
-rw-r--r--src/c_fl_float_input.h12
-rw-r--r--src/c_fl_input.h86
-rw-r--r--src/c_fl_int_input.h12
-rw-r--r--src/c_fl_menu_window.h26
-rw-r--r--src/c_fl_multiline_input.h12
-rw-r--r--src/c_fl_multiline_output.h12
-rw-r--r--src/c_fl_output.h13
-rw-r--r--src/c_fl_round_clock.cpp8
-rw-r--r--src/c_fl_round_clock.h17
-rw-r--r--src/c_fl_secret_input.h12
-rw-r--r--src/c_fl_single_window.h18
-rw-r--r--src/fltk-dialogs.adb84
-rw-r--r--src/fltk-dialogs.ads40
-rw-r--r--src/fltk-widgets-clocks-updated-round.adb25
-rw-r--r--src/fltk-widgets-clocks-updated-round.ads13
-rw-r--r--src/fltk-widgets-clocks-updated.adb56
-rw-r--r--src/fltk-widgets-clocks-updated.ads19
-rw-r--r--src/fltk-widgets-clocks.adb31
-rw-r--r--src/fltk-widgets-clocks.ads22
-rw-r--r--src/fltk-widgets-groups-input_choices.adb2
-rw-r--r--src/fltk-widgets-groups-input_choices.ads2
-rw-r--r--src/fltk-widgets-groups-windows-double.adb10
-rw-r--r--src/fltk-widgets-groups-windows-double.ads13
-rw-r--r--src/fltk-widgets-groups-windows-single-menu.adb17
-rw-r--r--src/fltk-widgets-groups-windows-single-menu.ads20
-rw-r--r--src/fltk-widgets-groups-windows-single.adb9
-rw-r--r--src/fltk-widgets-groups-windows-single.ads13
-rw-r--r--src/fltk-widgets-inputs-file.adb45
-rw-r--r--src/fltk-widgets-inputs-file.ads30
-rw-r--r--src/fltk-widgets-inputs-float.adb6
-rw-r--r--src/fltk-widgets-inputs-float.ads12
-rw-r--r--src/fltk-widgets-inputs-integer.adb6
-rw-r--r--src/fltk-widgets-inputs-integer.ads12
-rw-r--r--src/fltk-widgets-inputs-multiline.adb6
-rw-r--r--src/fltk-widgets-inputs-multiline.ads9
-rw-r--r--src/fltk-widgets-inputs-outputs-multiline.adb6
-rw-r--r--src/fltk-widgets-inputs-outputs-multiline.ads9
-rw-r--r--src/fltk-widgets-inputs-outputs.adb6
-rw-r--r--src/fltk-widgets-inputs-outputs.ads9
-rw-r--r--src/fltk-widgets-inputs-secret.adb6
-rw-r--r--src/fltk-widgets-inputs-secret.ads9
-rw-r--r--src/fltk-widgets-inputs.adb45
-rw-r--r--src/fltk-widgets-inputs.ads59
69 files changed, 3177 insertions, 222 deletions
diff --git a/doc/blank_template.html b/doc/blank_template.html
index 256c469..d624fee 100644
--- a/doc/blank_template.html
+++ b/doc/blank_template.html
@@ -18,8 +18,9 @@
<tr><th colspan="2">Package name</th></tr>
<tr>
-
+
</tr>
+
</table>
@@ -28,7 +29,7 @@
<tr><th colspan="2">Types</th></tr>
<tr>
-
+
</tr>
</table>
diff --git a/doc/common_dialogs.html b/doc/common_dialogs.html
new file mode 100644
index 0000000..0676bf8
--- /dev/null
+++ b/doc/common_dialogs.html
@@ -0,0 +1,263 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Common Dialogs Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Common Dialogs Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Ask</td>
+ <td>FLTK.Dialogs</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Beep</td>
+ <td>Beep_Kind</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Choice</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>RGB_Float</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>RGB_Int</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+void fl_alert(const char *fmt,...);
+</pre></td>
+<td><pre>
+procedure Alert
+ (Message : String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int fl_ask(const char *fmt,...);
+</pre></td>
+<td>Present but disabled due to fl_ask being deprecated</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_beep(int type);
+</pre></td>
+<td><pre>
+procedure Beep
+ (Kind : in Beep_Kind);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int fl_choice(const char *fmt, const char *b0, const char *b1, const char *b2,...);
+</pre></td>
+<td><pre>
+function Three_Way_Choice
+ (Message, Button1, Button2, Button3 : in String)
+ return Choice;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int fl_color_chooser(const char *name, double &r, double &g, double &b, int cmode);
+</pre></td>
+<td><pre>
+function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Float;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int fl_color_chooser(const char *name, uchar &r, uchar &g, uchar &b, int cmode);
+</pre></td>
+<td><pre>
+function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Int;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+char * fl_dir_chooser(const char *message, const char *fname, int relative);
+</pre></td>
+<td><pre>
+function Dir_Chooser
+ (Message, Default : in String;
+ Relative : in Boolean := False)
+ return String;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+char * fl_file_chooser(const char *message, const char *pat, const char *fname, int relative);
+</pre></td>
+<td><pre>
+function File_Chooser
+ (Message, Filter_Pattern, Default : in String;
+ Relative : in Boolean := False)
+ return String;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_file_chooser_callback(void(*cb)(const char *));
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_file_chooser_ok_label(const char *l);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+const char * fl_input(const char *fmt, const char *defstr,...);
+</pre></td>
+<td><pre>
+function Text_Input
+ (Message : in String;
+ Default : in String := "")
+ return String;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_message(const char *fmt,...);
+</pre></td>
+<td><pre>
+procedure Message_Box
+ (Message : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_message_font(Fl_Font f, Fl_Fontsize s);
+</pre></td>
+<td><pre>
+procedure Set_Message_Font
+ (Font : in Font_Kind;
+ Size : in Font_Size);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_message_hotspot(int enable);
+</pre></td>
+<td><pre>
+procedure Set_Hotspot
+ (To : in Boolean);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int fl_message_hotspot(void);
+</pre></td>
+<td><pre>
+function Get_Hotspot
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Widget * fl_message_icon();
+</pre></td>
+<td><pre>
+function Get_Message_Icon
+ return FLTK.Widgets.Boxes.Box_Reference;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_message_title(const char *title);
+</pre></td>
+<td><pre>
+procedure Set_Message_Title
+ (To : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void fl_message_title_default(const char *title);
+</pre></td>
+<td><pre>
+procedure Set_Message_Title_Default
+ (To : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+const char * fl_password(const char *fmt, const char *defstr,...);
+</pre></td>
+<td><pre>
+function Password
+ (Message : in String;
+ Default : in String := "")
+ return String;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_clock.html b/doc/fl_clock.html
new file mode 100644
index 0000000..5e37577
--- /dev/null
+++ b/doc/fl_clock.html
@@ -0,0 +1,107 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Clock Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Clock Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Clock</td>
+ <td>FLTK.Widgets.Clocks.Updated</td>
+ </tr>
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Clock</td>
+ <td>Updated_Clock</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Updated_Clock_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Clock(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Clock(uchar t, int X, int Y, int W, int H, const char *L);
+</pre></td>
+<td><pre>
+function Create
+ (Kind : in Box_Kind;
+ X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Updated_Clock);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int handle(int);
+</pre></td>
+<td><pre>
+function Handle
+ (This : in out Updated_Clock;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_clock_output.html b/doc/fl_clock_output.html
new file mode 100644
index 0000000..92aaf37
--- /dev/null
+++ b/doc/fl_clock_output.html
@@ -0,0 +1,184 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Clock_Output Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Clock_Output Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Clock_Output</td>
+ <td>FLTK.Widgets.Clocks</td>
+ </tr>
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Clock_Output</td>
+ <td>Clock</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Clock_Reference</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Hour</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Minute</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Second</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Time_Value</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Clock_Output(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Clock;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void draw();
+</pre></td>
+<td><pre>
+procedure Draw
+ (This : in out Clock);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void draw(int X, int Y, int W, int H);
+</pre></td>
+<td><pre>
+procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Clock;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int hour() const;
+</pre></td>
+<td><pre>
+function Get_Hour
+ (This : in Clock)
+ return Hour;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int minute() const;
+</pre></td>
+<td><pre>
+function Get_Minute
+ (This : in Clock)
+ return Minute;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int second() const;
+</pre></td>
+<td><pre>
+function Get_Second
+ (This : in Clock)
+ return Second;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void value(ulong v);
+</pre></td>
+<td><pre>
+procedure Set_Time
+ (This : in out Clock;
+ To : in Time_Value);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void value(int H, int m, int s);
+</pre></td>
+<td><pre>
+procedure Set_Time
+ (This : in out Clock;
+ Hours : in Hour;
+ Minutes : in Minute;
+ Seconds : in Second);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+ulong value() const;
+</pre></td>
+<td><pre>
+function Get_Time
+ (This : in Clock)
+ return Time_Value;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_double_window.html b/doc/fl_double_window.html
new file mode 100644
index 0000000..88656a4
--- /dev/null
+++ b/doc/fl_double_window.html
@@ -0,0 +1,139 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Double_Window Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Double_Window Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Double_Window</td>
+ <td>FLTK.Widgets.Groups.Windows.Double</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Double_Window</td>
+ <td>Double_Window</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Double_Window_Reference</td>
+ <tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Double_Window(int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (W, H : in Integer)
+ return Double_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Double_Window(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Double_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Double_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void flush();
+</pre></td>
+<td><pre>
+procedure Flush
+ (This : in out Double_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Double_Window;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void hide();
+</pre></td>
+<td><pre>
+procedure Hide
+ (This : in out Double_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void resize(int,int,int,int);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void show();
+</pre></td>
+<td><pre>
+procedure Show
+ (This : in out Double_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void show(int a, char **b);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_file_input.html b/doc/fl_file_input.html
new file mode 100644
index 0000000..d98c29c
--- /dev/null
+++ b/doc/fl_file_input.html
@@ -0,0 +1,155 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_File_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_File_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_File_Input</td>
+ <td>FLTK.Widgets.Inputs.File</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_File_Input</td>
+ <td>File_Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>File_Input_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_File_Input(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return File_Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Boxtype down_box() const;
+</pre></td>
+<td><pre>
+function Get_Down_Box
+ (This : in File_Input)
+ return Box_Kind;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void down_box(Fl_Boxtype b);
+</pre></td>
+<td><pre>
+procedure Set_Down_Box
+ (This : in out File_Input;
+ To : in Box_Kind);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+virtual void draw();
+</pre></td>
+<td><pre>
+procedure Draw
+ (This : in out File_Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Color errorcolor() const;
+</pre></td>
+<td><pre>
+function Get_Error_Color
+ (This : in File_Input)
+ return Color;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void errorcolor(Fl_Color c);
+</pre></td>
+<td><pre>
+procedure Set_Error_Color
+ (This : in out File_Input;
+ To : in Color);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+virtual int handle(int event);
+</pre></td>
+<td><pre>
+function Handle
+ (This : in out File_Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int value(const char *str);
+int value(const char *str, int len);
+</pre></td>
+<td><pre>
+procedure Set_Value
+ (This : in out Input;
+ To : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+const char * value();
+</pre></td>
+<td><pre>
+function Get_Value
+ (This : in Input)
+ return String;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_float_input.html b/doc/fl_float_input.html
new file mode 100644
index 0000000..04afafe
--- /dev/null
+++ b/doc/fl_float_input.html
@@ -0,0 +1,93 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Float_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Float_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Float_Input</td>
+ <td>FLTK.Widgets.Inputs.Float</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Float_Input</td>
+ <td>Float_Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Float_Input_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Float_Input(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Float_Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Float_Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Get_Value
+ (This : in Float_Input)
+ return Standard.Float;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Float_Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_input.html b/doc/fl_input.html
new file mode 100644
index 0000000..f93b4c8
--- /dev/null
+++ b/doc/fl_input.html
@@ -0,0 +1,545 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Input_<br>Fl_Input</td>
+ <td>FLTK.Widgets.Inputs</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Input_<br>Fl_Input</td>
+ <td>Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Input_Reference</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Input_Kind</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Input_(int, int, int, int, const char*=0);
+Fl_Input(int, int, int, int, const char*=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Has_Changed
+ (This : in Input)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Clear_Changed
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int copy(int clipboard);
+</pre></td>
+<td><pre>
+procedure Copy
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int copy_cuts();
+</pre></td>
+<td><pre>
+procedure Copy_Cuts
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Color cursor_color() const;
+</pre></td>
+<td><pre>
+function Get_Cursor_Color
+ (This : in Input)
+ return Color;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void cursor_color(Fl_Color n);
+</pre></td>
+<td><pre>
+procedure Set_Cursor_Color
+ (This : in out Input;
+ To : in Color);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int cut();
+</pre></td>
+<td><pre>
+procedure Cut
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int cut(int n);
+</pre></td>
+<td><pre>
+procedure Cut
+ (This : in out Input;
+ Num_Bytes : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int cut(int a, int b);
+</pre></td>
+<td><pre>
+procedure Cut
+ (This : in out Input;
+ Start, Finish : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void draw();
+</pre></td>
+<td><pre>
+procedure Draw
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int handle(int);
+</pre></td>
+<td><pre>
+function Handle
+ (This : in out Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Char index(int i) const;
+</pre></td>
+<td><pre>
+function Index
+ (This : in Input;
+ Place : in Integer)
+ return Character;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int input_type() const;
+</pre></td>
+<td><pre>
+function Get_Input_Type
+ (This : in Input)
+ return Input_Kind;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void input_type(int t);
+</pre></td>
+<td><pre>
+procedure Set_Input_Type
+ (This : in out Input;
+ To : in Input_Kind);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int insert(const char *t, int l=0);
+</pre></td>
+<td><pre>
+procedure Insert
+ (This : in out Input;
+ Str : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int mark() const;
+</pre></td>
+<td><pre>
+function Get_Mark
+ (This : in Input)
+ return Natural;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int mark(int m);
+</pre></td>
+<td><pre>
+procedure Set_Mark
+ (This : in out Input;
+ To : in Natural);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int maximum_size() const;
+</pre></td>
+<td><pre>
+function Get_Maximum_Size
+ (This : in Input)
+ return Natural;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void maximum_size(int m);
+</pre></td>
+<td><pre>
+procedure Set_Maximum_Size
+ (This : in out Input;
+ To : in Natural);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int position() const;
+</pre></td>
+<td><pre>
+function Get_Position
+ (This : in Input)
+ return Natural;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int position(int p, int m);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+int position(int p);
+</pre></td>
+<td><pre>
+procedure Set_Position
+ (This : in out Input;
+ To : in Natural);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int readonly() const;
+</pre></td>
+<td><pre>
+function Is_Readonly
+ (This : in Input)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void readonly(int b);
+</pre></td>
+<td><pre>
+procedure Set_Readonly
+ (This : in out Input;
+ To : in Boolean);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int replace(int b, int e, const char *text, int ilen=0);
+</pre></td>
+<td><pre>
+procedure Replace
+ (This : in out Input;
+ From, To : in Natural;
+ New_Text : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void resize(int, int, int, int);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+int shortcut() const;
+</pre></td>
+<td><pre>
+function Get_Shortcut_Key
+ (This : in Input)
+ return Shortcut_Key;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void shortcut(int s);
+</pre></td>
+<td><pre>
+procedure Set_Shortcut_Key
+ (This : in out Input;
+ To : in Shortcut_Key);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int size() const;
+</pre></td>
+<td><pre>
+function Size
+ (This : in Input)
+ return Natural;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void size(int W, int H);
+</pre></td>
+<td><pre>
+procedure Resize
+ (This : in out Input;
+ W, H : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int static_value(const char *);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+int static_value(const char *, int);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void tab_nav(int val);
+</pre></td>
+<td><pre>
+procedure Set_Tab_Nav
+ (This : in out Input;
+ To : in Boolean);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int tab_nav() const;
+</pre></td>
+<td><pre>
+function Is_Tab_Nav
+ (This : in Input)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Color textcolor() const;
+</pre></td>
+<td><pre>
+function Get_Text_Color
+ (This : in Input)
+ return Color;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void textcolor(Fl_Color n);
+</pre></td>
+<td><pre>
+procedure Set_Text_Color
+ (This : in out Input;
+ To : in Color);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Font textfont() const;
+</pre></td>
+<td><pre>
+function Get_Text_Font
+ (This : in Input)
+ return Font_Kind;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void textfont(Fl_Font s);
+</pre></td>
+<td><pre>
+procedure Set_Text_Font
+ (This : in out Input;
+ To : in Font_Kind);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Fontsize textsize() const;
+</pre></td>
+<td><pre>
+function Get_Text_Size
+ (This : in Input)
+ return Font_Size;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void textsize(Fl_Fontsize s);
+</pre></td>
+<td><pre>
+procedure Set_Text_Size
+ (This : in out Input;
+ To : in Font_Size);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int undo();
+</pre></td>
+<td><pre>
+procedure Undo
+ (This : in out Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int value(const char *);
+int value(const char *, int);
+</pre></td>
+<td><pre>
+procedure Set_Value
+ (This : in out Input;
+ To : in String);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+const char * value() const;
+</pre></td>
+<td><pre>
+function Get_Value
+ (This : in Input)
+ return String;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int wrap() const;
+</pre></td>
+<td><pre>
+function Is_Wrap
+ (This : in Input)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void wrap(int b);
+</pre></td>
+<td><pre>
+procedure Set_Wrap
+ (This : in out Input;
+ To : in Boolean);
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_int_input.html b/doc/fl_int_input.html
new file mode 100644
index 0000000..5acce80
--- /dev/null
+++ b/doc/fl_int_input.html
@@ -0,0 +1,93 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Int_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Int_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Int_Input</td>
+ <td>FLTK.Widgets.Inputs.Integer</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Int_Input</td>
+ <td>Integer_Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Integer_Input_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Int_Input(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Integer_Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Integer_Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Get_Value
+ (This : in Integer_Input)
+ return Standard.Integer;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Integer_Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_menu_window.html b/doc/fl_menu_window.html
new file mode 100644
index 0000000..74ca9b7
--- /dev/null
+++ b/doc/fl_menu_window.html
@@ -0,0 +1,161 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Menu_Window Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Menu_Window Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Menu_Window</td>
+ <td>FLTK.Widgets.Groups.Windows.Single.Menu</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Menu_Window</td>
+ <td>Menu_Window</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Menu_Window_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Menu_Window(int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (W, H : in Integer)
+ return Menu_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Menu_Window(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Menu_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void clear_overlay();
+</pre></td>
+<td>See set_overlay();</td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Menu_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void erase();
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void flush();
+</pre></td>
+<td><pre>
+procedure Flush
+ (This : in out Menu_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Menu_Window;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void hide();
+</pre></td>
+<td><pre>
+procedure Hide
+ (This : in out Menu_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+unsigned int overlay();
+</pre></td>
+<td><pre>
+function Is_Overlay
+ (This : in Menu_Window)
+ return Boolean;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void set_overlay();
+</pre></td>
+<td><pre>
+procedure Set_Overlay
+ (This : in out Menu_Window;
+ Value : in Boolean);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void show();
+</pre></td>
+<td><pre>
+procedure Show
+ (This : in out Menu_Window);
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_multiline_input.html b/doc/fl_multiline_input.html
new file mode 100644
index 0000000..54d8ce0
--- /dev/null
+++ b/doc/fl_multiline_input.html
@@ -0,0 +1,84 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Multiline_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Multiline_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Multiline_Input</td>
+ <td>FLTK.Widgets.Inputs.Multiline</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Multiline_Input</td>
+ <td>Multiline_Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Multiline_Input_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Multiline_Input(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Multiline_Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Multiline_Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Multiline_Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_multiline_output.html b/doc/fl_multiline_output.html
new file mode 100644
index 0000000..982c48d
--- /dev/null
+++ b/doc/fl_multiline_output.html
@@ -0,0 +1,84 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Multiline_Output Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Multiline_Output Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Multiline_Output</td>
+ <td>FLTK.Widgets.Inputs.Outputs.Multiline</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_MultilineOutput</td>
+ <td>Multiline_Output</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Multiline_Output_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Multiline_Output(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Multiline_Output;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Multiline_Output);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Multiline_Output;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_output.html b/doc/fl_output.html
new file mode 100644
index 0000000..a8b7502
--- /dev/null
+++ b/doc/fl_output.html
@@ -0,0 +1,84 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Output Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Output Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Output</td>
+ <td>FLTK.Widgets.Inputs.Outputs</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Output</td>
+ <td>Output</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Output_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Output(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Output;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Output);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Output;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_round_clock.html b/doc/fl_round_clock.html
new file mode 100644
index 0000000..9049459
--- /dev/null
+++ b/doc/fl_round_clock.html
@@ -0,0 +1,93 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Round_Clock Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Round_Clock Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Round_Clock</td>
+ <td>FLTK.Widgets.Clocks.Updated.Round</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Round_Clock</td>
+ <td>Round_Clock</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Round_Clock_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Round_Clock(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Round_Clock;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Round_Clock);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Round_Clock;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_secret_input.html b/doc/fl_secret_input.html
new file mode 100644
index 0000000..43e5226
--- /dev/null
+++ b/doc/fl_secret_input.html
@@ -0,0 +1,86 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Secret_Input Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Secret_Input Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Secret_Input</td>
+ <td>FLTK.Widgets.Inputs.Secret</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Secret_Input</td>
+ <td>Secret_Input</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Secret_Input_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Secret_Input(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Secret_Input;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Secret_Input);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int handle(int);
+</pre></td>
+<td><pre>
+function Handle
+ (This : in out Secret_Input;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/doc/fl_single_window.html b/doc/fl_single_window.html
new file mode 100644
index 0000000..4044d5c
--- /dev/null
+++ b/doc/fl_single_window.html
@@ -0,0 +1,129 @@
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Fl_Single_Window Binding Map</title>
+ <link href="map.css" rel="stylesheet">
+ </head>
+
+ <body>
+
+
+<h2>Fl_Single_Window Binding Map</h2>
+
+
+<table class="package">
+ <tr><th colspan="2">Package name</th></tr>
+
+ <tr>
+ <td>Fl_Single_Window</td>
+ <td>FLTK.Widgets.Groups.Windows.Single</td>
+ </tr>
+
+</table>
+
+
+
+<table class="type">
+ <tr><th colspan="2">Types</th></tr>
+
+ <tr>
+ <td>Fl_Single_Window</td>
+ <td>Single_Window</td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ <td>Single_Window_Reference</td>
+ </tr>
+
+</table>
+
+
+
+<table class="function">
+ <tr><th colspan="2">Functions and Procedures</th></tr>
+
+ <tr>
+<td><pre>
+Fl_Single_Window(int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (W, H : in Integer)
+ return Single_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+Fl_Single_Window(int X, int Y, int W, int H, const char *L=0);
+</pre></td>
+<td><pre>
+function Create
+ (X, Y, W, H : in Integer;
+ Text : in String)
+ return Single_Window;
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+procedure Draw
+ (This : in out Single_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void flush();
+</pre></td>
+<td><pre>
+procedure Flush
+ (This : in out Single_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td>&nbsp;</td>
+<td><pre>
+function Handle
+ (This : in out Single_Window;
+ Event : in Event_Kind)
+ return Event_Outcome;
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+int make_current();
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+ <tr>
+<td><pre>
+void show();
+</pre></td>
+<td><pre>
+procedure Show
+ (This : in out Single_Window);
+</pre></td>
+ </tr>
+
+ <tr>
+<td><pre>
+void show(int a, char **b);
+</pre></td>
+<td>&nbsp;</td>
+ </tr>
+
+</table>
+
+
+ </body>
+</html>
+
diff --git a/progress.txt b/progress.txt
index b65afdb..7724f4c 100644
--- a/progress.txt
+++ b/progress.txt
@@ -12,6 +12,7 @@ Overall estimate: ???%
Polished:
+FLTK.Dialogs
FLTK.Tooltips
FLTK.Widgets.Boxes
FLTK.Widgets.Buttons
@@ -24,6 +25,20 @@ FLTK.Widgets.Buttons.Light.Round.Radio
FLTK.Widgets.Buttons.Radio
FLTK.Widgets.Buttons.Repeat
FLTK.Widgets.Buttons.Toggle
+FLTK.Widgets.Clocks
+FLTK.Widgets.Clocks.Updated
+FLTK.Widgets.Clocks.Updated.Round
+FLTK.Widgets.Groups.Windows.Double
+FLTK.Widgets.Groups.Windows.Single
+FLTK.Widgets.Groups.Windows.Single.Menu
+FLTK.Widgets.Inputs
+FLTK.Widgets.Inputs.File
+FLTK.Widgets.Inputs.Float
+FLTK.Widgets.Inputs.Integer
+FLTK.Widgets.Inputs.Multiline
+FLTK.Widgets.Inputs.Outputs
+FLTK.Widgets.Inputs.Outputs.Multiline
+FLTK.Widgets.Inputs.Secret
@@ -35,7 +50,6 @@ FLTK.Devices.Surfaces.Copy
FLTK.Devices.Surfaces.Image
FLTK.Devices.Surfaces.Paged
FLTK.Devices.Surfaces.Paged.Printers
-FLTK.Dialogs
FLTK.Images
FLTK.Images.Bitmaps
FLTK.Images.Bitmaps.XBM
@@ -46,9 +60,6 @@ FLTK.Images.RGB.PNG
FLTK.Images.RGB.PNM
FLTK.Images.Shared
FLTK.Widgets.Charts
-FLTK.Widgets.Clocks
-FLTK.Widgets.Clocks.Updated
-FLTK.Widgets.Clocks.Updated.Round
FLTK.Widgets.Groups.Color_Choosers
FLTK.Widgets.Groups.Input_Choices
FLTK.Widgets.Groups.Packed
@@ -57,18 +68,7 @@ FLTK.Widgets.Groups.Spinners
FLTK.Widgets.Groups.Tabbed
FLTK.Widgets.Groups.Text_Displays.Text_Editors
FLTK.Widgets.Groups.Tiled
-FLTK.Widgets.Groups.Windows.Double
-FLTK.Widgets.Groups.Windows.Single
-FLTK.Widgets.Groups.Windows.Single.Menu
FLTK.Widgets.Groups.Wizards
-FLTK.Widgets.Inputs
-FLTK.Widgets.Inputs.File
-FLTK.Widgets.Inputs.Float
-FLTK.Widgets.Inputs.Integer
-FLTK.Widgets.Inputs.Multiline
-FLTK.Widgets.Inputs.Outputs
-FLTK.Widgets.Inputs.Outputs.Multiline
-FLTK.Widgets.Inputs.Secret
FLTK.Widgets.Menus.Menu_Bars
FLTK.Widgets.Menus.Menu_Buttons
FLTK.Widgets.Progress_Bars
@@ -141,13 +141,17 @@ FL_Cairo_Window
- 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? 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
+(delay this until figure out an easier way to expose protected methods)
+
+- make all protected methods available
+
+
Bugs to fix:
diff --git a/src/c_fl_clock.cpp b/src/c_fl_clock.cpp
index 89b19bc..10a8ad7 100644
--- a/src/c_fl_clock.cpp
+++ b/src/c_fl_clock.cpp
@@ -14,6 +14,7 @@ class My_Clock : public Fl_Clock {
friend void fl_clock_draw(CLOCK c);
friend void clock_set_handle_hook(CLOCK c, void * h);
friend int fl_clock_handle(CLOCK c, int e);
+ friend void fl_clock_draw2(CLOCK c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -63,8 +64,20 @@ CLOCK new_fl_clock(int x, int y, int w, int h, char* label) {
return c;
}
+CLOCK new_fl_clock2(uchar k, int x, int y, int w, int h, char* label) {
+ My_Clock *c = new My_Clock(k,x,y,w,h,label);
+ return c;
+}
+
void free_fl_clock(CLOCK c) {
delete reinterpret_cast<My_Clock*>(c);
}
+
+
+void fl_clock_draw2(CLOCK c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Clock*>(c)->Fl_Clock::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_clock.h b/src/c_fl_clock.h
index 844f428..26255b0 100644
--- a/src/c_fl_clock.h
+++ b/src/c_fl_clock.h
@@ -11,16 +11,22 @@ typedef void* CLOCK;
-extern "C" void clock_set_draw_hook(CLOCK c, void * d);
-extern "C" void fl_clock_draw(CLOCK c);
-extern "C" void clock_set_handle_hook(CLOCK c, void * h);
-extern "C" int fl_clock_handle(CLOCK c, int e);
+extern "C" inline void clock_set_draw_hook(CLOCK c, void * d);
+extern "C" inline void fl_clock_draw(CLOCK c);
+extern "C" inline void clock_set_handle_hook(CLOCK c, void * h);
+extern "C" inline int fl_clock_handle(CLOCK c, int e);
-extern "C" CLOCK new_fl_clock(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_clock(CLOCK c);
+extern "C" inline CLOCK new_fl_clock(int x, int y, int w, int h, char* label);
+extern "C" inline CLOCK new_fl_clock2(uchar k, int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_clock(CLOCK c);
+
+
+
+
+extern "C" inline void fl_clock_draw2(CLOCK c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_clock_output.cpp b/src/c_fl_clock_output.cpp
index 62f5e1b..b427068 100644
--- a/src/c_fl_clock_output.cpp
+++ b/src/c_fl_clock_output.cpp
@@ -14,6 +14,7 @@ class My_Clock_Output : public Fl_Clock_Output {
friend void fl_clock_output_draw(CLOCK_OUTPUT c);
friend void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
friend int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
+ friend void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -71,27 +72,35 @@ void free_fl_clock_output(CLOCK_OUTPUT c) {
int fl_clock_output_get_hour(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->hour();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::hour();
}
int fl_clock_output_get_minute(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->minute();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::minute();
}
int fl_clock_output_get_second(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->second();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::second();
}
ulong fl_clock_output_get_value(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->value();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value();
}
void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v) {
- reinterpret_cast<My_Clock_Output*>(c)->value(v);
+ reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value(v);
}
void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s) {
- reinterpret_cast<My_Clock_Output*>(c)->value(h,m,s);
+ reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value(h,m,s);
}
+
+
+
+void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Clock_Output*>(c)->Fl_Clock_Output::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_clock_output.h b/src/c_fl_clock_output.h
index 6a606a5..bb3b11f 100644
--- a/src/c_fl_clock_output.h
+++ b/src/c_fl_clock_output.h
@@ -11,28 +11,31 @@ typedef void* CLOCK_OUTPUT;
-extern "C" void clock_output_set_draw_hook(CLOCK_OUTPUT c, void * d);
-extern "C" void fl_clock_output_draw(CLOCK_OUTPUT c);
-extern "C" void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
-extern "C" int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
+extern "C" inline void clock_output_set_draw_hook(CLOCK_OUTPUT c, void * d);
+extern "C" inline void fl_clock_output_draw(CLOCK_OUTPUT c);
+extern "C" inline void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
+extern "C" inline int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
-extern "C" CLOCK_OUTPUT new_fl_clock_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_clock_output(CLOCK_OUTPUT c);
+extern "C" inline CLOCK_OUTPUT new_fl_clock_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_clock_output(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_hour(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_minute(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_second(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_hour(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_minute(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_second(CLOCK_OUTPUT c);
-extern "C" ulong fl_clock_output_get_value(CLOCK_OUTPUT c);
-extern "C" void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v);
-extern "C" void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s);
+extern "C" inline ulong fl_clock_output_get_value(CLOCK_OUTPUT c);
+extern "C" inline void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v);
+extern "C" inline void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s);
+
+
+extern "C" inline void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_dialog.cpp b/src/c_fl_dialog.cpp
index b73c05c..1929859 100644
--- a/src/c_fl_dialog.cpp
+++ b/src/c_fl_dialog.cpp
@@ -41,6 +41,10 @@ int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b,
return fl_color_chooser(n, r, g, b, m);
}
+int dialog_fl_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m) {
+ return fl_color_chooser(n, r, g, b, m);
+}
+
char * dialog_fl_dir_chooser(const char * m, const char * d, int r) {
return fl_dir_chooser(m, d, r);
}
diff --git a/src/c_fl_dialog.h b/src/c_fl_dialog.h
index b366d2c..21765aa 100644
--- a/src/c_fl_dialog.h
+++ b/src/c_fl_dialog.h
@@ -4,26 +4,27 @@
#define FL_DIALOG_GUARD
-extern "C" void dialog_fl_alert(const char * m);
-//extern "C" int dialog_fl_ask(const char * m);
-extern "C" void dialog_fl_beep(int b);
-extern "C" int dialog_fl_choice(const char * m, const char * a, const char * b, const char * c);
-extern "C" const char * dialog_fl_input(const char * m, const char * d);
-extern "C" void dialog_fl_message(const char * m);
-extern "C" const char * dialog_fl_password(const char * m, const char * d);
-
-
-extern "C" int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b, int m);
-extern "C" char * dialog_fl_dir_chooser(const char * m, const char * d, int r);
-extern "C" char * dialog_fl_file_chooser(const char * m, const char * p, const char * d, int r);
-
-
-extern "C" int dialog_fl_get_message_hotspot(void);
-extern "C" void dialog_fl_set_message_hotspot(int v);
-extern "C" void dialog_fl_message_font(int f, int s);
-extern "C" void * dialog_fl_message_icon(void);
-extern "C" void dialog_fl_message_title(const char * t);
-extern "C" void dialog_fl_message_title_default(const char * t);
+extern "C" inline void dialog_fl_alert(const char * m);
+//extern "C" inline int dialog_fl_ask(const char * m);
+extern "C" inline void dialog_fl_beep(int b);
+extern "C" inline int dialog_fl_choice(const char * m, const char * a, const char * b, const char * c);
+extern "C" inline const char * dialog_fl_input(const char * m, const char * d);
+extern "C" inline void dialog_fl_message(const char * m);
+extern "C" inline const char * dialog_fl_password(const char * m, const char * d);
+
+
+extern "C" inline int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b, int m);
+extern "C" inline int dialog_fl_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m);
+extern "C" inline char * dialog_fl_dir_chooser(const char * m, const char * d, int r);
+extern "C" inline char * dialog_fl_file_chooser(const char * m, const char * p, const char * d, int r);
+
+
+extern "C" inline int dialog_fl_get_message_hotspot(void);
+extern "C" inline void dialog_fl_set_message_hotspot(int v);
+extern "C" inline void dialog_fl_message_font(int f, int s);
+extern "C" inline void * dialog_fl_message_icon(void);
+extern "C" inline void dialog_fl_message_title(const char * t);
+extern "C" inline void dialog_fl_message_title_default(const char * t);
#endif
diff --git a/src/c_fl_double_window.h b/src/c_fl_double_window.h
index 96b6a1d..8334058 100644
--- a/src/c_fl_double_window.h
+++ b/src/c_fl_double_window.h
@@ -11,24 +11,24 @@ typedef void* DOUBLEWINDOW;
-extern "C" void double_window_set_draw_hook(DOUBLEWINDOW n, void * d);
-extern "C" void fl_double_window_draw(DOUBLEWINDOW n);
-extern "C" void double_window_set_handle_hook(DOUBLEWINDOW n, void * h);
-extern "C" int fl_double_window_handle(DOUBLEWINDOW n, int e);
+extern "C" inline void double_window_set_draw_hook(DOUBLEWINDOW n, void * d);
+extern "C" inline void fl_double_window_draw(DOUBLEWINDOW n);
+extern "C" inline void double_window_set_handle_hook(DOUBLEWINDOW n, void * h);
+extern "C" inline int fl_double_window_handle(DOUBLEWINDOW n, int e);
-extern "C" DOUBLEWINDOW new_fl_double_window(int x, int y, int w, int h, char* label);
-extern "C" DOUBLEWINDOW new_fl_double_window2(int w, int h);
-extern "C" void free_fl_double_window(DOUBLEWINDOW d);
+extern "C" inline DOUBLEWINDOW new_fl_double_window(int x, int y, int w, int h, char* label);
+extern "C" inline DOUBLEWINDOW new_fl_double_window2(int w, int h);
+extern "C" inline void free_fl_double_window(DOUBLEWINDOW d);
-extern "C" void fl_double_window_show(DOUBLEWINDOW d);
-extern "C" void fl_double_window_hide(DOUBLEWINDOW d);
-extern "C" void fl_double_window_flush(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_show(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_hide(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_flush(DOUBLEWINDOW d);
#endif
diff --git a/src/c_fl_file_input.cpp b/src/c_fl_file_input.cpp
index 50b600f..f4fcc4f 100644
--- a/src/c_fl_file_input.cpp
+++ b/src/c_fl_file_input.cpp
@@ -87,3 +87,14 @@ void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t) {
}
+
+
+const char * fl_file_input_get_value(FILE_INPUT i) {
+ return reinterpret_cast<Fl_File_Input*>(i)->value();
+}
+
+void fl_file_input_set_value(FILE_INPUT i, const char * s, int len) {
+ reinterpret_cast<Fl_File_Input*>(i)->value(s,len);
+}
+
+
diff --git a/src/c_fl_file_input.h b/src/c_fl_file_input.h
index 18d977e..f86fb3f 100644
--- a/src/c_fl_file_input.h
+++ b/src/c_fl_file_input.h
@@ -11,24 +11,28 @@ typedef void* FILE_INPUT;
-extern "C" void file_input_set_draw_hook(FILE_INPUT i, void * d);
-extern "C" void fl_file_input_draw(FILE_INPUT i);
-extern "C" void file_input_set_handle_hook(FILE_INPUT i, void * h);
-extern "C" int fl_file_input_handle(FILE_INPUT i, int e);
+extern "C" inline void file_input_set_draw_hook(FILE_INPUT i, void * d);
+extern "C" inline void fl_file_input_draw(FILE_INPUT i);
+extern "C" inline void file_input_set_handle_hook(FILE_INPUT i, void * h);
+extern "C" inline int fl_file_input_handle(FILE_INPUT i, int e);
-extern "C" FILE_INPUT new_fl_file_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_file_input(FILE_INPUT i);
+extern "C" inline FILE_INPUT new_fl_file_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_file_input(FILE_INPUT i);
-extern "C" int fl_file_input_get_down_box(FILE_INPUT i);
-extern "C" void fl_file_input_set_down_box(FILE_INPUT i, int t);
-extern "C" unsigned int fl_file_input_get_errorcolor(FILE_INPUT i);
-extern "C" void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t);
+extern "C" inline int fl_file_input_get_down_box(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_down_box(FILE_INPUT i, int t);
+extern "C" inline unsigned int fl_file_input_get_errorcolor(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t);
+
+
+extern "C" inline const char * fl_file_input_get_value(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_value(FILE_INPUT i, const char * s, int len);
#endif
diff --git a/src/c_fl_float_input.h b/src/c_fl_float_input.h
index a49d0f7..5b97446 100644
--- a/src/c_fl_float_input.h
+++ b/src/c_fl_float_input.h
@@ -11,16 +11,16 @@ typedef void* FLOAT_INPUT;
-extern "C" void float_input_set_draw_hook(FLOAT_INPUT i, void * d);
-extern "C" void fl_float_input_draw(FLOAT_INPUT i);
-extern "C" void float_input_set_handle_hook(FLOAT_INPUT i, void * h);
-extern "C" int fl_float_input_handle(FLOAT_INPUT i, int e);
+extern "C" inline void float_input_set_draw_hook(FLOAT_INPUT i, void * d);
+extern "C" inline void fl_float_input_draw(FLOAT_INPUT i);
+extern "C" inline void float_input_set_handle_hook(FLOAT_INPUT i, void * h);
+extern "C" inline int fl_float_input_handle(FLOAT_INPUT i, int e);
-extern "C" FLOAT_INPUT new_fl_float_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_float_input(FLOAT_INPUT i);
+extern "C" inline FLOAT_INPUT new_fl_float_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_float_input(FLOAT_INPUT i);
#endif
diff --git a/src/c_fl_input.h b/src/c_fl_input.h
index 38bfc7e..23bee96 100644
--- a/src/c_fl_input.h
+++ b/src/c_fl_input.h
@@ -11,69 +11,69 @@ typedef void* INPUT;
-extern "C" void input_set_draw_hook(INPUT n, void * d);
-extern "C" void fl_input_draw(INPUT n);
-extern "C" void input_set_handle_hook(INPUT i, void * h);
-extern "C" int fl_input_handle(INPUT i, int e);
+extern "C" inline void input_set_draw_hook(INPUT n, void * d);
+extern "C" inline void fl_input_draw(INPUT n);
+extern "C" inline void input_set_handle_hook(INPUT i, void * h);
+extern "C" inline int fl_input_handle(INPUT i, int e);
-extern "C" INPUT new_fl_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_input(INPUT i);
+extern "C" inline INPUT new_fl_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_input(INPUT i);
-extern "C" int fl_input_copy(INPUT i);
-extern "C" int fl_input_cut(INPUT i);
-extern "C" int fl_input_cut2(INPUT i, int b);
-extern "C" int fl_input_cut3(INPUT i, int a, int b);
-extern "C" int fl_input_copy_cuts(INPUT i);
-extern "C" int fl_input_undo(INPUT i);
+extern "C" inline int fl_input_copy(INPUT i);
+extern "C" inline int fl_input_cut(INPUT i);
+extern "C" inline int fl_input_cut2(INPUT i, int b);
+extern "C" inline int fl_input_cut3(INPUT i, int a, int b);
+extern "C" inline int fl_input_copy_cuts(INPUT i);
+extern "C" inline int fl_input_undo(INPUT i);
-extern "C" int fl_input_get_readonly(INPUT i);
-extern "C" void fl_input_set_readonly(INPUT i, int t);
-extern "C" int fl_input_get_tab_nav(INPUT i);
-extern "C" void fl_input_set_tab_nav(INPUT i, int t);
-extern "C" int fl_input_get_wrap(INPUT i);
-extern "C" void fl_input_set_wrap(INPUT i, int t);
+extern "C" inline int fl_input_get_readonly(INPUT i);
+extern "C" inline void fl_input_set_readonly(INPUT i, int t);
+extern "C" inline int fl_input_get_tab_nav(INPUT i);
+extern "C" inline void fl_input_set_tab_nav(INPUT i, int t);
+extern "C" inline int fl_input_get_wrap(INPUT i);
+extern "C" inline void fl_input_set_wrap(INPUT i, int t);
-extern "C" int fl_input_get_input_type(INPUT i);
-extern "C" void fl_input_set_input_type(INPUT i, int t);
-extern "C" unsigned long fl_input_get_shortcut(INPUT i);
-extern "C" void fl_input_set_shortcut(INPUT i, unsigned long t);
-extern "C" int fl_input_get_mark(INPUT i);
-extern "C" int fl_input_set_mark(INPUT i, int t);
-extern "C" int fl_input_get_position(INPUT i);
-extern "C" int fl_input_set_position(INPUT i, int t);
+extern "C" inline int fl_input_get_input_type(INPUT i);
+extern "C" inline void fl_input_set_input_type(INPUT i, int t);
+extern "C" inline unsigned long fl_input_get_shortcut(INPUT i);
+extern "C" inline void fl_input_set_shortcut(INPUT i, unsigned long t);
+extern "C" inline int fl_input_get_mark(INPUT i);
+extern "C" inline int fl_input_set_mark(INPUT i, int t);
+extern "C" inline int fl_input_get_position(INPUT i);
+extern "C" inline int fl_input_set_position(INPUT i, int t);
-extern "C" unsigned int fl_input_index(INPUT i, int p);
-extern "C" int fl_input_insert(INPUT i, const char * s, int l);
-extern "C" int fl_input_replace(INPUT i, int b, int e, const char * s, int l);
-extern "C" const char * fl_input_get_value(INPUT i);
-extern "C" void fl_input_set_value(INPUT i, char * s, int len);
+extern "C" inline unsigned int fl_input_index(INPUT i, int p);
+extern "C" inline int fl_input_insert(INPUT i, const char * s, int l);
+extern "C" inline int fl_input_replace(INPUT i, int b, int e, const char * s, int l);
+extern "C" inline const char * fl_input_get_value(INPUT i);
+extern "C" inline void fl_input_set_value(INPUT i, char * s, int len);
-extern "C" int fl_input_get_maximum_size(INPUT i);
-extern "C" void fl_input_set_maximum_size(INPUT i, int t);
-extern "C" int fl_input_get_size(INPUT i);
+extern "C" inline int fl_input_get_maximum_size(INPUT i);
+extern "C" inline void fl_input_set_maximum_size(INPUT i, int t);
+extern "C" inline int fl_input_get_size(INPUT i);
-extern "C" unsigned int fl_input_get_cursor_color(INPUT i);
-extern "C" void fl_input_set_cursor_color(INPUT i, unsigned int t);
-extern "C" unsigned int fl_input_get_textcolor(INPUT i);
-extern "C" void fl_input_set_textcolor(INPUT i, unsigned int t);
-extern "C" int fl_input_get_textfont(INPUT i);
-extern "C" void fl_input_set_textfont(INPUT i, int t);
-extern "C" int fl_input_get_textsize(INPUT i);
-extern "C" void fl_input_set_textsize(INPUT i, int t);
+extern "C" inline unsigned int fl_input_get_cursor_color(INPUT i);
+extern "C" inline void fl_input_set_cursor_color(INPUT i, unsigned int t);
+extern "C" inline unsigned int fl_input_get_textcolor(INPUT i);
+extern "C" inline void fl_input_set_textcolor(INPUT i, unsigned int t);
+extern "C" inline int fl_input_get_textfont(INPUT i);
+extern "C" inline void fl_input_set_textfont(INPUT i, int t);
+extern "C" inline int fl_input_get_textsize(INPUT i);
+extern "C" inline void fl_input_set_textsize(INPUT i, int t);
-extern "C" void fl_input_set_size(INPUT i, int w, int h);
+extern "C" inline void fl_input_set_size(INPUT i, int w, int h);
#endif
diff --git a/src/c_fl_int_input.h b/src/c_fl_int_input.h
index 907c041..bd5e408 100644
--- a/src/c_fl_int_input.h
+++ b/src/c_fl_int_input.h
@@ -11,16 +11,16 @@ typedef void* INT_INPUT;
-extern "C" void int_input_set_draw_hook(INT_INPUT i, void * d);
-extern "C" void fl_int_input_draw(INT_INPUT i);
-extern "C" void int_input_set_handle_hook(INT_INPUT i, void * h);
-extern "C" int fl_int_input_handle(INT_INPUT i, int e);
+extern "C" inline void int_input_set_draw_hook(INT_INPUT i, void * d);
+extern "C" inline void fl_int_input_draw(INT_INPUT i);
+extern "C" inline void int_input_set_handle_hook(INT_INPUT i, void * h);
+extern "C" inline int fl_int_input_handle(INT_INPUT i, int e);
-extern "C" INT_INPUT new_fl_int_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_int_input(INT_INPUT i);
+extern "C" inline INT_INPUT new_fl_int_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_int_input(INT_INPUT i);
#endif
diff --git a/src/c_fl_menu_window.h b/src/c_fl_menu_window.h
index 402f50a..cd7a0f4 100644
--- a/src/c_fl_menu_window.h
+++ b/src/c_fl_menu_window.h
@@ -11,29 +11,29 @@ typedef void* MENUWINDOW;
-extern "C" void menu_window_set_draw_hook(MENUWINDOW n, void * d);
-extern "C" void fl_menu_window_draw(MENUWINDOW n);
-extern "C" void menu_window_set_handle_hook(MENUWINDOW n, void * h);
-extern "C" int fl_menu_window_handle(MENUWINDOW n, int e);
+extern "C" inline void menu_window_set_draw_hook(MENUWINDOW n, void * d);
+extern "C" inline void fl_menu_window_draw(MENUWINDOW n);
+extern "C" inline void menu_window_set_handle_hook(MENUWINDOW n, void * h);
+extern "C" inline int fl_menu_window_handle(MENUWINDOW n, int e);
-extern "C" MENUWINDOW new_fl_menu_window(int x, int y, int w, int h, char* label);
-extern "C" MENUWINDOW new_fl_menu_window2(int w, int h);
-extern "C" void free_fl_menu_window(MENUWINDOW m);
+extern "C" inline MENUWINDOW new_fl_menu_window(int x, int y, int w, int h, char* label);
+extern "C" inline MENUWINDOW new_fl_menu_window2(int w, int h);
+extern "C" inline void free_fl_menu_window(MENUWINDOW m);
-extern "C" void fl_menu_window_show(MENUWINDOW m);
-extern "C" void fl_menu_window_hide(MENUWINDOW m);
-extern "C" void fl_menu_window_flush(MENUWINDOW m);
+extern "C" inline void fl_menu_window_show(MENUWINDOW m);
+extern "C" inline void fl_menu_window_hide(MENUWINDOW m);
+extern "C" inline void fl_menu_window_flush(MENUWINDOW m);
-extern "C" void fl_menu_window_set_overlay(MENUWINDOW m);
-extern "C" void fl_menu_window_clear_overlay(MENUWINDOW m);
-extern "C" unsigned int fl_menu_window_overlay(MENUWINDOW m);
+extern "C" inline void fl_menu_window_set_overlay(MENUWINDOW m);
+extern "C" inline void fl_menu_window_clear_overlay(MENUWINDOW m);
+extern "C" inline unsigned int fl_menu_window_overlay(MENUWINDOW m);
#endif
diff --git a/src/c_fl_multiline_input.h b/src/c_fl_multiline_input.h
index 177567b..eb19332 100644
--- a/src/c_fl_multiline_input.h
+++ b/src/c_fl_multiline_input.h
@@ -11,16 +11,16 @@ typedef void* MULTILINE_INPUT;
-extern "C" void multiline_input_set_draw_hook(MULTILINE_INPUT i, void * d);
-extern "C" void fl_multiline_input_draw(MULTILINE_INPUT i);
-extern "C" void multiline_input_set_handle_hook(MULTILINE_INPUT i, void * h);
-extern "C" int fl_multiline_input_handle(MULTILINE_INPUT i, int e);
+extern "C" inline void multiline_input_set_draw_hook(MULTILINE_INPUT i, void * d);
+extern "C" inline void fl_multiline_input_draw(MULTILINE_INPUT i);
+extern "C" inline void multiline_input_set_handle_hook(MULTILINE_INPUT i, void * h);
+extern "C" inline int fl_multiline_input_handle(MULTILINE_INPUT i, int e);
-extern "C" MULTILINE_INPUT new_fl_multiline_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_multiline_input(MULTILINE_INPUT i);
+extern "C" inline MULTILINE_INPUT new_fl_multiline_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_multiline_input(MULTILINE_INPUT i);
#endif
diff --git a/src/c_fl_multiline_output.h b/src/c_fl_multiline_output.h
index fae3da8..ebd5886 100644
--- a/src/c_fl_multiline_output.h
+++ b/src/c_fl_multiline_output.h
@@ -11,16 +11,16 @@ typedef void* MULTILINE_OUTPUT;
-extern "C" void multiline_output_set_draw_hook(MULTILINE_OUTPUT i, void * d);
-extern "C" void fl_multiline_output_draw(MULTILINE_OUTPUT i);
-extern "C" void multiline_output_set_handle_hook(MULTILINE_OUTPUT i, void * h);
-extern "C" int fl_multiline_output_handle(MULTILINE_OUTPUT i, int e);
+extern "C" inline void multiline_output_set_draw_hook(MULTILINE_OUTPUT i, void * d);
+extern "C" inline void fl_multiline_output_draw(MULTILINE_OUTPUT i);
+extern "C" inline void multiline_output_set_handle_hook(MULTILINE_OUTPUT i, void * h);
+extern "C" inline int fl_multiline_output_handle(MULTILINE_OUTPUT i, int e);
-extern "C" MULTILINE_OUTPUT new_fl_multiline_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_multiline_output(MULTILINE_OUTPUT i);
+extern "C" inline MULTILINE_OUTPUT new_fl_multiline_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_multiline_output(MULTILINE_OUTPUT i);
#endif
diff --git a/src/c_fl_output.h b/src/c_fl_output.h
index 002240c..d5959ec 100644
--- a/src/c_fl_output.h
+++ b/src/c_fl_output.h
@@ -7,21 +7,22 @@
// using just "OUTPUT" doesn't compile for some reason
+// some sort of name clash?
typedef void* OUTPUTT;
-extern "C" void output_set_draw_hook(OUTPUTT i, void * d);
-extern "C" void fl_output_draw(OUTPUTT i);
-extern "C" void output_set_handle_hook(OUTPUTT i, void * h);
-extern "C" int fl_output_handle(OUTPUTT i, int e);
+extern "C" inline void output_set_draw_hook(OUTPUTT i, void * d);
+extern "C" inline void fl_output_draw(OUTPUTT i);
+extern "C" inline void output_set_handle_hook(OUTPUTT i, void * h);
+extern "C" inline int fl_output_handle(OUTPUTT i, int e);
-extern "C" OUTPUTT new_fl_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_output(OUTPUTT i);
+extern "C" inline OUTPUTT new_fl_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_output(OUTPUTT i);
#endif
diff --git a/src/c_fl_round_clock.cpp b/src/c_fl_round_clock.cpp
index 56179fc..c37fd77 100644
--- a/src/c_fl_round_clock.cpp
+++ b/src/c_fl_round_clock.cpp
@@ -14,6 +14,7 @@ class My_Round_Clock : public Fl_Round_Clock {
friend void fl_round_clock_draw(ROUND_CLOCK c);
friend void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
friend int fl_round_clock_handle(ROUND_CLOCK c, int e);
+ friend void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -68,3 +69,10 @@ void free_fl_round_clock(ROUND_CLOCK c) {
}
+
+
+void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Round_Clock*>(c)->Fl_Round_Clock::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_round_clock.h b/src/c_fl_round_clock.h
index c0e6585..06ec30c 100644
--- a/src/c_fl_round_clock.h
+++ b/src/c_fl_round_clock.h
@@ -11,16 +11,21 @@ typedef void* ROUND_CLOCK;
-extern "C" void round_clock_set_draw_hook(ROUND_CLOCK c, void * d);
-extern "C" void fl_round_clock_draw(ROUND_CLOCK c);
-extern "C" void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
-extern "C" int fl_round_clock_handle(ROUND_CLOCK c, int e);
+extern "C" inline void round_clock_set_draw_hook(ROUND_CLOCK c, void * d);
+extern "C" inline void fl_round_clock_draw(ROUND_CLOCK c);
+extern "C" inline void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
+extern "C" inline int fl_round_clock_handle(ROUND_CLOCK c, int e);
-extern "C" ROUND_CLOCK new_fl_round_clock(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_round_clock(ROUND_CLOCK c);
+extern "C" inline ROUND_CLOCK new_fl_round_clock(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_round_clock(ROUND_CLOCK c);
+
+
+
+
+extern "C" inline void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_secret_input.h b/src/c_fl_secret_input.h
index 604626d..4f92349 100644
--- a/src/c_fl_secret_input.h
+++ b/src/c_fl_secret_input.h
@@ -11,16 +11,16 @@ typedef void* SECRET_INPUT;
-extern "C" void secret_input_set_draw_hook(SECRET_INPUT i, void * d);
-extern "C" void fl_secret_input_draw(SECRET_INPUT i);
-extern "C" void secret_input_set_handle_hook(SECRET_INPUT i, void * h);
-extern "C" int fl_secret_input_handle(SECRET_INPUT i, int e);
+extern "C" inline void secret_input_set_draw_hook(SECRET_INPUT i, void * d);
+extern "C" inline void fl_secret_input_draw(SECRET_INPUT i);
+extern "C" inline void secret_input_set_handle_hook(SECRET_INPUT i, void * h);
+extern "C" inline int fl_secret_input_handle(SECRET_INPUT i, int e);
-extern "C" SECRET_INPUT new_fl_secret_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_secret_input(SECRET_INPUT i);
+extern "C" inline SECRET_INPUT new_fl_secret_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_secret_input(SECRET_INPUT i);
#endif
diff --git a/src/c_fl_single_window.h b/src/c_fl_single_window.h
index 02a6619..31ca7d3 100644
--- a/src/c_fl_single_window.h
+++ b/src/c_fl_single_window.h
@@ -11,23 +11,23 @@ typedef void* SINGLEWINDOW;
-extern "C" void single_window_set_draw_hook(SINGLEWINDOW n, void * d);
-extern "C" void fl_single_window_draw(SINGLEWINDOW n);
-extern "C" void single_window_set_handle_hook(SINGLEWINDOW n, void * h);
-extern "C" int fl_single_window_handle(SINGLEWINDOW n, int e);
+extern "C" inline void single_window_set_draw_hook(SINGLEWINDOW n, void * d);
+extern "C" inline void fl_single_window_draw(SINGLEWINDOW n);
+extern "C" inline void single_window_set_handle_hook(SINGLEWINDOW n, void * h);
+extern "C" inline int fl_single_window_handle(SINGLEWINDOW n, int e);
-extern "C" SINGLEWINDOW new_fl_single_window(int x, int y, int w, int h, char* label);
-extern "C" SINGLEWINDOW new_fl_single_window2(int x, int y);
-extern "C" void free_fl_single_window(SINGLEWINDOW w);
+extern "C" inline SINGLEWINDOW new_fl_single_window(int x, int y, int w, int h, char* label);
+extern "C" inline SINGLEWINDOW new_fl_single_window2(int x, int y);
+extern "C" inline void free_fl_single_window(SINGLEWINDOW w);
-extern "C" void fl_single_window_show(SINGLEWINDOW w);
-extern "C" void fl_single_window_flush(SINGLEWINDOW w);
+extern "C" inline void fl_single_window_show(SINGLEWINDOW w);
+extern "C" inline void fl_single_window_flush(SINGLEWINDOW w);
#endif
diff --git a/src/fltk-dialogs.adb b/src/fltk-dialogs.adb
index 46c14ad..7f0629c 100644
--- a/src/fltk-dialogs.adb
+++ b/src/fltk-dialogs.adb
@@ -17,34 +17,41 @@ package body FLTK.Dialogs is
procedure dialog_fl_alert
(M : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_alert, "dialog_fl_alert");
+ pragma Inline (dialog_fl_alert);
-- function dialog_fl_ask
-- (M : in Interfaces.C.char_array)
-- return Interfaces.C.int;
-- pragma Import (C, dialog_fl_ask, "dialog_fl_ask");
+ -- pragma Inline (dialog_fl_ask);
procedure dialog_fl_beep
(B : in Interfaces.C.int);
pragma Import (C, dialog_fl_beep, "dialog_fl_beep");
+ pragma Inline (dialog_fl_beep);
function dialog_fl_choice
(M, A, B, C : in Interfaces.C.char_array)
return Interfaces.C.int;
pragma Import (C, dialog_fl_choice, "dialog_fl_choice");
+ pragma Inline (dialog_fl_choice);
function dialog_fl_input
(M, D : in Interfaces.C.char_array)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_input, "dialog_fl_input");
+ pragma Inline (dialog_fl_input);
procedure dialog_fl_message
(M : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message, "dialog_fl_message");
+ pragma Inline (dialog_fl_message);
function dialog_fl_password
(M, D : in Interfaces.C.char_array)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_password, "dialog_fl_password");
+ pragma Inline (dialog_fl_password);
@@ -55,18 +62,29 @@ package body FLTK.Dialogs is
M : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, dialog_fl_color_chooser, "dialog_fl_color_chooser");
+ pragma Inline (dialog_fl_color_chooser);
+
+ function dialog_fl_color_chooser2
+ (N : in Interfaces.C.char_array;
+ R, G, B : in out Interfaces.C.unsigned_char;
+ M : in Interfaces.C.int)
+ return Interfaces.C.int;
+ pragma Import (C, dialog_fl_color_chooser2, "dialog_fl_color_chooser2");
+ pragma Inline (dialog_fl_color_chooser2);
function dialog_fl_dir_chooser
(M, D : in Interfaces.C.char_array;
R : in Interfaces.C.int)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_dir_chooser, "dialog_fl_dir_chooser");
+ pragma Inline (dialog_fl_dir_chooser);
function dialog_fl_file_chooser
(M, P, D : in Interfaces.C.char_array;
R : in Interfaces.C.int)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_file_chooser, "dialog_fl_file_chooser");
+ pragma Inline (dialog_fl_file_chooser);
@@ -74,26 +92,32 @@ package body FLTK.Dialogs is
function dialog_fl_get_message_hotspot
return Interfaces.C.int;
pragma Import (C, dialog_fl_get_message_hotspot, "dialog_fl_get_message_hotspot");
+ pragma Inline (dialog_fl_get_message_hotspot);
procedure dialog_fl_set_message_hotspot
(V : in Interfaces.C.int);
pragma Import (C, dialog_fl_set_message_hotspot, "dialog_fl_set_message_hotspot");
+ pragma Inline (dialog_fl_set_message_hotspot);
procedure dialog_fl_message_font
(F, S : in Interfaces.C.int);
pragma Import (C, dialog_fl_message_font, "dialog_fl_message_font");
+ pragma Inline (dialog_fl_message_font);
function dialog_fl_message_icon
return System.Address;
pragma Import (C, dialog_fl_message_icon, "dialog_fl_message_icon");
+ pragma Inline (dialog_fl_message_icon);
procedure dialog_fl_message_title
(T : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message_title, "dialog_fl_message_title");
+ pragma Inline (dialog_fl_message_title);
procedure dialog_fl_message_title_default
(T : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message_title_default, "dialog_fl_message_title_default");
+ pragma Inline (dialog_fl_message_title_default);
@@ -143,11 +167,8 @@ package body FLTK.Dialogs is
(Interfaces.C.To_C (Message),
Interfaces.C.To_C (Default));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- string does not need dealloc
+ return Interfaces.C.Strings.Value (Result);
end Text_Input;
@@ -167,11 +188,8 @@ package body FLTK.Dialogs is
(Interfaces.C.To_C (Message),
Interfaces.C.To_C (Default));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- string does not need dealloc
+ return Interfaces.C.Strings.Value (Result);
end Password;
@@ -179,8 +197,9 @@ package body FLTK.Dialogs is
function Color_Chooser
(Title : in String;
- R, G, B : in out Long_Float;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode)
+ R, G, B : in out RGB_Float;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
return Boolean
is
C_R : Interfaces.C.double := Interfaces.C.double (R);
@@ -190,9 +209,30 @@ package body FLTK.Dialogs is
Result : Boolean := dialog_fl_color_chooser
(Interfaces.C.To_C (Title), C_R, C_G, C_B, M) /= 0;
begin
- R := Long_Float (C_R);
- G := Long_Float (C_G);
- B := Long_Float (C_B);
+ R := RGB_Float (C_R);
+ G := RGB_Float (C_G);
+ B := RGB_Float (C_B);
+ return Result;
+ end Color_Chooser;
+
+
+ function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Int;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean
+ is
+ C_R : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (R);
+ C_G : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (G);
+ C_B : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (B);
+ M : Interfaces.C.int := FLTK.Widgets.Groups.Color_Choosers.Color_Mode'Pos (Mode);
+ Result : Boolean := dialog_fl_color_chooser2
+ (Interfaces.C.To_C (Title), C_R, C_G, C_B, M) /= 0;
+ begin
+ R := RGB_Int (C_R);
+ G := RGB_Int (C_G);
+ B := RGB_Int (C_B);
return Result;
end Color_Chooser;
@@ -207,11 +247,8 @@ package body FLTK.Dialogs is
Interfaces.C.To_C (Default),
Boolean'Pos (Relative));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- I'm... fairly sure the string does not need dealloc?
+ return Interfaces.C.Strings.Value (Result);
end Dir_Chooser;
@@ -226,11 +263,8 @@ package body FLTK.Dialogs is
Interfaces.C.To_C (Default),
Boolean'Pos (Relative));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- I'm... fairly sure the string does not need dealloc?
+ return Interfaces.C.Strings.Value (Result);
end File_Chooser;
diff --git a/src/fltk-dialogs.ads b/src/fltk-dialogs.ads
index 03d1416..96a6bcf 100644
--- a/src/fltk-dialogs.ads
+++ b/src/fltk-dialogs.ads
@@ -15,6 +15,10 @@ package FLTK.Dialogs is
type Choice is (First, Second, Third);
+ type RGB_Float is new Long_Float range 0.0 .. 1.0;
+
+ type RGB_Int is mod 256;
+
@@ -50,8 +54,16 @@ package FLTK.Dialogs is
function Color_Chooser
(Title : in String;
- R, G, B : in out Long_Float;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode)
+ R, G, B : in out RGB_Float;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean;
+
+ function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Int;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
return Boolean;
function Dir_Chooser
@@ -93,5 +105,29 @@ private
Icon_Box : aliased FLTK.Widgets.Boxes.Box;
+
+
+ pragma Inline (Alert);
+ -- pragma Inline (Ask);
+ pragma Inline (Beep);
+ pragma Inline (Three_Way_Choice);
+ pragma Inline (Text_Input);
+ pragma Inline (Message_Box);
+ pragma Inline (Password);
+
+
+ pragma Inline (Color_Chooser);
+ pragma Inline (Dir_Chooser);
+ pragma Inline (File_Chooser);
+
+
+ pragma Inline (Get_Hotspot);
+ pragma Inline (Set_Hotspot);
+ pragma Inline (Set_Message_Font);
+ pragma Inline (Get_Message_Icon);
+ pragma Inline (Set_Message_Title);
+ pragma Inline (Set_Message_Title_Default);
+
+
end FLTK.Dialogs;
diff --git a/src/fltk-widgets-clocks-updated-round.adb b/src/fltk-widgets-clocks-updated-round.adb
index c87cb7b..f519fe0 100644
--- a/src/fltk-widgets-clocks-updated-round.adb
+++ b/src/fltk-widgets-clocks-updated-round.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks.Updated.Round is
procedure round_clock_set_draw_hook
(W, D : in System.Address);
pragma Import (C, round_clock_set_draw_hook, "round_clock_set_draw_hook");
+ pragma Inline (round_clock_set_draw_hook);
procedure round_clock_set_handle_hook
(W, H : in System.Address);
pragma Import (C, round_clock_set_handle_hook, "round_clock_set_handle_hook");
+ pragma Inline (round_clock_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Clocks.Updated.Round is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_round_clock, "new_fl_round_clock");
+ pragma Inline (new_fl_round_clock);
procedure free_fl_round_clock
(F : in System.Address);
pragma Import (C, free_fl_round_clock, "free_fl_round_clock");
+ pragma Inline (free_fl_round_clock);
@@ -40,12 +44,20 @@ package body FLTK.Widgets.Clocks.Updated.Round is
procedure fl_round_clock_draw
(W : in System.Address);
pragma Import (C, fl_round_clock_draw, "fl_round_clock_draw");
+ pragma Inline (fl_round_clock_draw);
+
+ procedure fl_round_clock_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_round_clock_draw2, "fl_round_clock_draw2");
+ pragma Inline (fl_round_clock_draw2);
function fl_round_clock_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_round_clock_handle, "fl_round_clock_handle");
+ pragma Inline (fl_round_clock_handle);
@@ -99,6 +111,19 @@ package body FLTK.Widgets.Clocks.Updated.Round is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_round_clock_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Round_Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks-updated-round.ads b/src/fltk-widgets-clocks-updated-round.ads
index 17f05b3..4b6681c 100644
--- a/src/fltk-widgets-clocks-updated-round.ads
+++ b/src/fltk-widgets-clocks-updated-round.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks.Updated.Round is
type Round_Clock is new Updated_Clock with private;
+ type Round_Clock_Reference (Data : not null access Round_Clock'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -23,6 +26,10 @@ package FLTK.Widgets.Clocks.Updated.Round is
procedure Draw
(This : in out Round_Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Round_Clock;
Event : in Event_Kind)
@@ -38,5 +45,11 @@ private
(This : in out Round_Clock);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks.Updated.Round;
diff --git a/src/fltk-widgets-clocks-updated.adb b/src/fltk-widgets-clocks-updated.adb
index d55521e..f2f450b 100644
--- a/src/fltk-widgets-clocks-updated.adb
+++ b/src/fltk-widgets-clocks-updated.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks.Updated is
procedure clock_set_draw_hook
(W, D : in System.Address);
pragma Import (C, clock_set_draw_hook, "clock_set_draw_hook");
+ pragma Inline (clock_set_draw_hook);
procedure clock_set_handle_hook
(W, H : in System.Address);
pragma Import (C, clock_set_handle_hook, "clock_set_handle_hook");
+ pragma Inline (clock_set_handle_hook);
@@ -29,10 +31,20 @@ package body FLTK.Widgets.Clocks.Updated is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_clock, "new_fl_clock");
+ pragma Inline (new_fl_clock);
+
+ function new_fl_clock2
+ (K : in Interfaces.C.unsigned_char;
+ X, Y, W, H : in Interfaces.C.int;
+ Text : in Interfaces.C.char_array)
+ return System.Address;
+ pragma Import (C, new_fl_clock2, "new_fl_clock2");
+ pragma Inline (new_fl_clock2);
procedure free_fl_clock
(F : in System.Address);
pragma Import (C, free_fl_clock, "free_fl_clock");
+ pragma Inline (free_fl_clock);
@@ -40,12 +52,20 @@ package body FLTK.Widgets.Clocks.Updated is
procedure fl_clock_draw
(W : in System.Address);
pragma Import (C, fl_clock_draw, "fl_clock_draw");
+ pragma Inline (fl_clock_draw);
+
+ procedure fl_clock_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_clock_draw2, "fl_clock_draw2");
+ pragma Inline (fl_clock_draw2);
function fl_clock_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_clock_handle, "fl_clock_handle");
+ pragma Inline (fl_clock_handle);
@@ -87,6 +107,29 @@ package body FLTK.Widgets.Clocks.Updated is
end return;
end Create;
+
+ function Create
+ (Kind : in Box_Kind;
+ X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock is
+ begin
+ return This : Updated_Clock do
+ This.Void_Ptr := new_fl_clock2
+ (Box_Kind'Pos (Kind),
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.To_C (Text));
+ fl_widget_set_user_data
+ (This.Void_Ptr,
+ Widget_Convert.To_Address (This'Unchecked_Access));
+ clock_set_draw_hook (This.Void_Ptr, Draw_Hook'Address);
+ clock_set_handle_hook (This.Void_Ptr, Handle_Hook'Address);
+ end return;
+ end Create;
+
end Forge;
@@ -99,6 +142,19 @@ package body FLTK.Widgets.Clocks.Updated is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_clock_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Updated_Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks-updated.ads b/src/fltk-widgets-clocks-updated.ads
index 35bff2c..9830d13 100644
--- a/src/fltk-widgets-clocks-updated.ads
+++ b/src/fltk-widgets-clocks-updated.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks.Updated is
type Updated_Clock is new Clock with private;
+ type Updated_Clock_Reference (Data : not null access Updated_Clock'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -15,6 +18,12 @@ package FLTK.Widgets.Clocks.Updated is
Text : in String)
return Updated_Clock;
+ function Create
+ (Kind : in Box_Kind;
+ X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock;
+
end Forge;
@@ -23,6 +32,10 @@ package FLTK.Widgets.Clocks.Updated is
procedure Draw
(This : in out Updated_Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Updated_Clock;
Event : in Event_Kind)
@@ -38,5 +51,11 @@ private
(This : in out Updated_Clock);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks.Updated;
diff --git a/src/fltk-widgets-clocks.adb b/src/fltk-widgets-clocks.adb
index 5fd3ec2..4eeee3c 100644
--- a/src/fltk-widgets-clocks.adb
+++ b/src/fltk-widgets-clocks.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks is
procedure clock_output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, clock_output_set_draw_hook, "clock_output_set_draw_hook");
+ pragma Inline (clock_output_set_draw_hook);
procedure clock_output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, clock_output_set_handle_hook, "clock_output_set_handle_hook");
+ pragma Inline (clock_output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Clocks is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_clock_output, "new_fl_clock_output");
+ pragma Inline (new_fl_clock_output);
procedure free_fl_clock_output
(F : in System.Address);
pragma Import (C, free_fl_clock_output, "free_fl_clock_output");
+ pragma Inline (free_fl_clock_output);
@@ -41,16 +45,19 @@ package body FLTK.Widgets.Clocks is
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_hour, "fl_clock_output_get_hour");
+ pragma Inline (fl_clock_output_get_hour);
function fl_clock_output_get_minute
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_minute, "fl_clock_output_get_minute");
+ pragma Inline (fl_clock_output_get_minute);
function fl_clock_output_get_second
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_second, "fl_clock_output_get_second");
+ pragma Inline (fl_clock_output_get_second);
@@ -59,16 +66,19 @@ package body FLTK.Widgets.Clocks is
(C : in System.Address)
return Interfaces.C.unsigned_long;
pragma Import (C, fl_clock_output_get_value, "fl_clock_output_get_value");
+ pragma Inline (fl_clock_output_get_value);
procedure fl_clock_output_set_value
(C : in System.Address;
V : in Interfaces.C.unsigned_long);
pragma Import (C, fl_clock_output_set_value, "fl_clock_output_set_value");
+ pragma Inline (fl_clock_output_set_value);
procedure fl_clock_output_set_value2
(C : in System.Address;
H, M, S : in Interfaces.C.int);
pragma Import (C, fl_clock_output_set_value2, "fl_clock_output_set_value2");
+ pragma Inline (fl_clock_output_set_value2);
@@ -76,12 +86,20 @@ package body FLTK.Widgets.Clocks is
procedure fl_clock_output_draw
(W : in System.Address);
pragma Import (C, fl_clock_output_draw, "fl_clock_output_draw");
+ pragma Inline (fl_clock_output_draw);
+
+ procedure fl_clock_output_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_clock_output_draw2, "fl_clock_output_draw2");
+ pragma Inline (fl_clock_output_draw2);
function fl_clock_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_handle, "fl_clock_output_handle");
+ pragma Inline (fl_clock_output_handle);
@@ -193,6 +211,19 @@ package body FLTK.Widgets.Clocks is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_clock_output_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks.ads b/src/fltk-widgets-clocks.ads
index eb8acfc..d1cd192 100644
--- a/src/fltk-widgets-clocks.ads
+++ b/src/fltk-widgets-clocks.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks is
type Clock is new Widget with private;
+ type Clock_Reference (Data : not null access Clock'Class) is limited null record
+ with Implicit_Dereference => Data;
+
subtype Hour is Integer range 0 .. 23;
subtype Minute is Integer range 0 .. 59;
subtype Second is Integer range 0 .. 60;
@@ -61,6 +64,10 @@ package FLTK.Widgets.Clocks is
procedure Draw
(This : in out Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Clock;
Event : in Event_Kind)
@@ -76,5 +83,20 @@ private
(This : in out Clock);
+
+
+ pragma Inline (Get_Hour);
+ pragma Inline (Get_Minute);
+ pragma Inline (Get_Second);
+
+
+ pragma Inline (Get_Time);
+ pragma Inline (Set_Time);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks;
diff --git a/src/fltk-widgets-groups-input_choices.adb b/src/fltk-widgets-groups-input_choices.adb
index 76bd3f9..603d480 100644
--- a/src/fltk-widgets-groups-input_choices.adb
+++ b/src/fltk-widgets-groups-input_choices.adb
@@ -198,7 +198,7 @@ package body FLTK.Widgets.Groups.Input_Choices is
function Input
(This : in out Input_Choice)
- return INP.Input_Cursor is
+ return INP.Input_Reference is
begin
return (Data => This.My_Input);
end Input;
diff --git a/src/fltk-widgets-groups-input_choices.ads b/src/fltk-widgets-groups-input_choices.ads
index 98fcded..0d4c8d4 100644
--- a/src/fltk-widgets-groups-input_choices.ads
+++ b/src/fltk-widgets-groups-input_choices.ads
@@ -28,7 +28,7 @@ package FLTK.Widgets.Groups.Input_Choices is
function Input
(This : in out Input_Choice)
- return FLTK.Widgets.Inputs.Input_Cursor;
+ return FLTK.Widgets.Inputs.Input_Reference;
function Menu_Button
(This : in out Input_Choice)
diff --git a/src/fltk-widgets-groups-windows-double.adb b/src/fltk-widgets-groups-windows-double.adb
index ba4c8b8..9e87d56 100644
--- a/src/fltk-widgets-groups-windows-double.adb
+++ b/src/fltk-widgets-groups-windows-double.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure double_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, double_window_set_draw_hook, "double_window_set_draw_hook");
+ pragma Inline (double_window_set_draw_hook);
procedure double_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, double_window_set_handle_hook, "double_window_set_handle_hook");
+ pragma Inline (double_window_set_handle_hook);
@@ -29,15 +31,18 @@ package body FLTK.Widgets.Groups.Windows.Double is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_double_window, "new_fl_double_window");
+ pragma Inline (new_fl_double_window);
function new_fl_double_window2
(X, Y : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_double_window2, "new_fl_double_window2");
+ pragma Inline (new_fl_double_window2);
procedure free_fl_double_window
(W : in System.Address);
pragma Import (C, free_fl_double_window, "free_fl_double_window");
+ pragma Inline (free_fl_double_window);
@@ -45,14 +50,17 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure fl_double_window_show
(W : in System.Address);
pragma Import (C, fl_double_window_show, "fl_double_window_show");
+ pragma Inline (fl_double_window_show);
procedure fl_double_window_hide
(W : in System.Address);
pragma Import (C, fl_double_window_hide, "fl_double_window_hide");
+ pragma Inline (fl_double_window_hide);
procedure fl_double_window_flush
(W : in System.Address);
pragma Import (C, fl_double_window_flush, "fl_double_window_flush");
+ pragma Inline (fl_double_window_flush);
@@ -60,12 +68,14 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure fl_double_window_draw
(W : in System.Address);
pragma Import (C, fl_double_window_draw, "fl_double_window_draw");
+ pragma Inline (fl_double_window_draw);
function fl_double_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_double_window_handle, "fl_double_window_handle");
+ pragma Inline (fl_double_window_handle);
diff --git a/src/fltk-widgets-groups-windows-double.ads b/src/fltk-widgets-groups-windows-double.ads
index 8f566b7..216419d 100644
--- a/src/fltk-widgets-groups-windows-double.ads
+++ b/src/fltk-widgets-groups-windows-double.ads
@@ -5,6 +5,8 @@ package FLTK.Widgets.Groups.Windows.Double is
type Double_Window is new Window with private;
+ type Double_Window_Reference (Data : not null access Double_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
@@ -54,5 +56,16 @@ private
(This : in out Double_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Hide);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Double;
diff --git a/src/fltk-widgets-groups-windows-single-menu.adb b/src/fltk-widgets-groups-windows-single-menu.adb
index f48021f..85026f2 100644
--- a/src/fltk-widgets-groups-windows-single-menu.adb
+++ b/src/fltk-widgets-groups-windows-single-menu.adb
@@ -17,10 +17,12 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure menu_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, menu_window_set_draw_hook, "menu_window_set_draw_hook");
+ pragma Inline (menu_window_set_draw_hook);
procedure menu_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, menu_window_set_handle_hook, "menu_window_set_handle_hook");
+ pragma Inline (menu_window_set_handle_hook);
@@ -30,15 +32,18 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
Label : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_menu_window, "new_fl_menu_window");
+ pragma Inline (new_fl_menu_window);
function new_fl_menu_window2
(W, H : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_menu_window2, "new_fl_menu_window2");
+ pragma Inline (new_fl_menu_window2);
procedure free_fl_menu_window
(M : in System.Address);
pragma Import (C, free_fl_menu_window, "free_fl_menu_window");
+ pragma Inline (free_fl_menu_window);
@@ -46,14 +51,17 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_show
(M : in System.Address);
pragma Import (C, fl_menu_window_show, "fl_menu_window_show");
+ pragma Inline (fl_menu_window_show);
procedure fl_menu_window_hide
(M : in System.Address);
pragma Import (C, fl_menu_window_hide, "fl_menu_window_hide");
+ pragma Inline (fl_menu_window_hide);
procedure fl_menu_window_flush
(M : in System.Address);
pragma Import (C, fl_menu_window_flush, "fl_menu_window_flush");
+ pragma Inline (fl_menu_window_flush);
@@ -61,15 +69,18 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_set_overlay
(M : in System.Address);
pragma Import (C, fl_menu_window_set_overlay, "fl_menu_window_set_overlay");
+ pragma Inline (fl_menu_window_set_overlay);
procedure fl_menu_window_clear_overlay
(M : in System.Address);
pragma Import (C, fl_menu_window_clear_overlay, "fl_menu_window_clear_overlay");
+ pragma Inline (fl_menu_window_clear_overlay);
function fl_menu_window_overlay
(M : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_menu_window_overlay, "fl_menu_window_overlay");
+ pragma Inline (fl_menu_window_overlay);
@@ -77,12 +88,14 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_draw
(W : in System.Address);
pragma Import (C, fl_menu_window_draw, "fl_menu_window_draw");
+ pragma Inline (fl_menu_window_draw);
function fl_menu_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_menu_window_handle, "fl_menu_window_handle");
+ pragma Inline (fl_menu_window_handle);
@@ -172,12 +185,12 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
- function Get_Overlay
+ function Is_Overlay
(This : in Menu_Window)
return Boolean is
begin
return fl_menu_window_overlay (This.Void_Ptr) /= 0;
- end Get_Overlay;
+ end Is_Overlay;
procedure Set_Overlay
diff --git a/src/fltk-widgets-groups-windows-single-menu.ads b/src/fltk-widgets-groups-windows-single-menu.ads
index 1ec5c1c..0d82bf8 100644
--- a/src/fltk-widgets-groups-windows-single-menu.ads
+++ b/src/fltk-widgets-groups-windows-single-menu.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Groups.Windows.Single.Menu is
type Menu_Window is new Single_Window with private;
+ type Menu_Window_Reference (Data : not null access Menu_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -36,7 +39,7 @@ package FLTK.Widgets.Groups.Windows.Single.Menu is
- function Get_Overlay
+ function Is_Overlay
(This : in Menu_Window)
return Boolean;
@@ -65,5 +68,20 @@ private
(This : in out Menu_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Hide);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Is_Overlay);
+ pragma Inline (Set_Overlay);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Single.Menu;
diff --git a/src/fltk-widgets-groups-windows-single.adb b/src/fltk-widgets-groups-windows-single.adb
index 22ca4a5..0dec8f1 100644
--- a/src/fltk-widgets-groups-windows-single.adb
+++ b/src/fltk-widgets-groups-windows-single.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure single_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, single_window_set_draw_hook, "single_window_set_draw_hook");
+ pragma Inline (single_window_set_draw_hook);
procedure single_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, single_window_set_handle_hook, "single_window_set_handle_hook");
+ pragma Inline (single_window_set_handle_hook);
@@ -29,15 +31,18 @@ package body FLTK.Widgets.Groups.Windows.Single is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_single_window, "new_fl_single_window");
+ pragma Inline (new_fl_single_window);
function new_fl_single_window2
(W, H : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_single_window2, "new_fl_single_window2");
+ pragma Inline (new_fl_single_window2);
procedure free_fl_single_window
(S : in System.Address);
pragma Import (C, free_fl_single_window, "free_fl_single_window");
+ pragma Inline (free_fl_single_window);
@@ -45,10 +50,12 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure fl_single_window_show
(S : in System.Address);
pragma Import (C, fl_single_window_show, "fl_single_window_show");
+ pragma Inline (fl_single_window_show);
procedure fl_single_window_flush
(S : in System.Address);
pragma Import (C, fl_single_window_flush, "fl_single_window_flush");
+ pragma Inline (fl_single_window_flush);
@@ -56,12 +63,14 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure fl_single_window_draw
(W : in System.Address);
pragma Import (C, fl_single_window_draw, "fl_single_window_draw");
+ pragma Inline (fl_single_window_draw);
function fl_single_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_single_window_handle, "fl_single_window_handle");
+ pragma Inline (fl_single_window_handle);
diff --git a/src/fltk-widgets-groups-windows-single.ads b/src/fltk-widgets-groups-windows-single.ads
index e33597c..67acf9b 100644
--- a/src/fltk-widgets-groups-windows-single.ads
+++ b/src/fltk-widgets-groups-windows-single.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Groups.Windows.Single is
type Single_Window is new Window with private;
+ type Single_Window_Reference (Data : not null access Single_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -51,5 +54,15 @@ private
(This : in out Single_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Single;
diff --git a/src/fltk-widgets-inputs-file.adb b/src/fltk-widgets-inputs-file.adb
index cdbeca5..222b847 100644
--- a/src/fltk-widgets-inputs-file.adb
+++ b/src/fltk-widgets-inputs-file.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.File is
procedure file_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, file_input_set_draw_hook, "file_input_set_draw_hook");
+ pragma Inline (file_input_set_draw_hook);
procedure file_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, file_input_set_handle_hook, "file_input_set_handle_hook");
+ pragma Inline (file_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.File is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_file_input, "new_fl_file_input");
+ pragma Inline (new_fl_file_input);
procedure free_fl_file_input
(F : in System.Address);
pragma Import (C, free_fl_file_input, "free_fl_file_input");
+ pragma Inline (free_fl_file_input);
@@ -41,21 +45,41 @@ package body FLTK.Widgets.Inputs.File is
(F : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_file_input_get_down_box, "fl_file_input_get_down_box");
+ pragma Inline (fl_file_input_get_down_box);
procedure fl_file_input_set_down_box
(F : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_file_input_set_down_box, "fl_file_input_set_down_box");
+ pragma Inline (fl_file_input_set_down_box);
function fl_file_input_get_errorcolor
(F : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_file_input_get_errorcolor, "fl_file_input_get_errorcolor");
+ pragma Inline (fl_file_input_get_errorcolor);
procedure fl_file_input_set_errorcolor
(F : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_file_input_set_errorcolor, "fl_file_input_set_errorcolor");
+ pragma Inline (fl_file_input_set_errorcolor);
+
+
+
+
+ function fl_file_input_get_value
+ (F : in System.Address)
+ return Interfaces.C.Strings.chars_ptr;
+ pragma Import (C, fl_file_input_get_value, "fl_file_input_get_value");
+ pragma Inline (fl_file_input_get_value);
+
+ procedure fl_file_input_set_value
+ (I : in System.Address;
+ T : in Interfaces.C.char_array;
+ L : in Interfaces.C.int);
+ pragma Import (C, fl_file_input_set_value, "fl_file_input_set_value");
+ pragma Inline (fl_file_input_set_value);
@@ -63,12 +87,14 @@ package body FLTK.Widgets.Inputs.File is
procedure fl_file_input_draw
(W : in System.Address);
pragma Import (C, fl_file_input_draw, "fl_file_input_draw");
+ pragma Inline (fl_file_input_draw);
function fl_file_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_file_input_handle, "fl_file_input_handle");
+ pragma Inline (fl_file_input_handle);
@@ -149,6 +175,25 @@ package body FLTK.Widgets.Inputs.File is
+ function Get_Value
+ (This : in Input)
+ return String is
+ begin
+ -- pointer to internal buffer only, so no Free required
+ return Interfaces.C.Strings.Value (fl_file_input_get_value (This.Void_Ptr));
+ end Get_Value;
+
+
+ procedure Set_Value
+ (This : in out Input;
+ To : in String) is
+ begin
+ fl_file_input_set_value (This.Void_Ptr, Interfaces.C.To_C (To), To'Length);
+ end Set_Value;
+
+
+
+
procedure Draw
(This : in out File_Input) is
begin
diff --git a/src/fltk-widgets-inputs-file.ads b/src/fltk-widgets-inputs-file.ads
index 3ef3561..3d1142a 100644
--- a/src/fltk-widgets-inputs-file.ads
+++ b/src/fltk-widgets-inputs-file.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.File is
type File_Input is new Input with private;
+ type File_Input_Reference (Data : not null access File_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -39,6 +42,17 @@ package FLTK.Widgets.Inputs.File is
+ function Get_Value
+ (This : in Input)
+ return String;
+
+ procedure Set_Value
+ (This : in out Input;
+ To : in String);
+
+
+
+
procedure Draw
(This : in out File_Input);
@@ -57,5 +71,21 @@ private
(This : in out File_Input);
+
+
+ pragma Inline (Get_Down_Box);
+ pragma Inline (Set_Down_Box);
+ pragma Inline (Get_Error_Color);
+ pragma Inline (Set_Error_Color);
+
+
+ pragma Inline (Get_Value);
+ pragma Inline (Set_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.File;
diff --git a/src/fltk-widgets-inputs-float.adb b/src/fltk-widgets-inputs-float.adb
index 249b99b..3b1b5b3 100644
--- a/src/fltk-widgets-inputs-float.adb
+++ b/src/fltk-widgets-inputs-float.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Float is
procedure float_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, float_input_set_draw_hook, "float_input_set_draw_hook");
+ pragma Inline (float_input_set_draw_hook);
procedure float_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, float_input_set_handle_hook, "float_input_set_handle_hook");
+ pragma Inline (float_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Float is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_float_input, "new_fl_float_input");
+ pragma Inline (new_fl_float_input);
procedure free_fl_float_input
(F : in System.Address);
pragma Import (C, free_fl_float_input, "free_fl_float_input");
+ pragma Inline (free_fl_float_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Float is
procedure fl_float_input_draw
(W : in System.Address);
pragma Import (C, fl_float_input_draw, "fl_float_input_draw");
+ pragma Inline (fl_float_input_draw);
function fl_float_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_float_input_handle, "fl_float_input_handle");
+ pragma Inline (fl_float_input_handle);
diff --git a/src/fltk-widgets-inputs-float.ads b/src/fltk-widgets-inputs-float.ads
index 1df1a98..39a58b3 100644
--- a/src/fltk-widgets-inputs-float.ads
+++ b/src/fltk-widgets-inputs-float.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Float is
type Float_Input is new Input with private;
+ type Float_Input_Reference (Data : not null access Float_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -45,5 +48,14 @@ private
(This : in out Float_Input);
+
+
+ pragma Inline (Get_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Float;
diff --git a/src/fltk-widgets-inputs-integer.adb b/src/fltk-widgets-inputs-integer.adb
index b82545a..2f41e73 100644
--- a/src/fltk-widgets-inputs-integer.adb
+++ b/src/fltk-widgets-inputs-integer.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Integer is
procedure int_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, int_input_set_draw_hook, "int_input_set_draw_hook");
+ pragma Inline (int_input_set_draw_hook);
procedure int_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, int_input_set_handle_hook, "int_input_set_handle_hook");
+ pragma Inline (int_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Integer is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_int_input, "new_fl_int_input");
+ pragma Inline (new_fl_int_input);
procedure free_fl_int_input
(F : in System.Address);
pragma Import (C, free_fl_int_input, "free_fl_int_input");
+ pragma Inline (free_fl_int_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Integer is
procedure fl_int_input_draw
(W : in System.Address);
pragma Import (C, fl_int_input_draw, "fl_int_input_draw");
+ pragma Inline (fl_int_input_draw);
function fl_int_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_int_input_handle, "fl_int_input_handle");
+ pragma Inline (fl_int_input_handle);
diff --git a/src/fltk-widgets-inputs-integer.ads b/src/fltk-widgets-inputs-integer.ads
index bde356c..f5e74f6 100644
--- a/src/fltk-widgets-inputs-integer.ads
+++ b/src/fltk-widgets-inputs-integer.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Integer is
type Integer_Input is new Input with private;
+ type Integer_Input_Reference (Data : not null access Integer_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -45,5 +48,14 @@ private
(This : in out Integer_Input);
+
+
+ pragma Inline (Get_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Integer;
diff --git a/src/fltk-widgets-inputs-multiline.adb b/src/fltk-widgets-inputs-multiline.adb
index 43a51fe..f65cbc4 100644
--- a/src/fltk-widgets-inputs-multiline.adb
+++ b/src/fltk-widgets-inputs-multiline.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Multiline is
procedure multiline_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, multiline_input_set_draw_hook, "multiline_input_set_draw_hook");
+ pragma Inline (multiline_input_set_draw_hook);
procedure multiline_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, multiline_input_set_handle_hook, "multiline_input_set_handle_hook");
+ pragma Inline (multiline_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Multiline is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_multiline_input, "new_fl_multiline_input");
+ pragma Inline (new_fl_multiline_input);
procedure free_fl_multiline_input
(F : in System.Address);
pragma Import (C, free_fl_multiline_input, "free_fl_multiline_input");
+ pragma Inline (free_fl_multiline_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Multiline is
procedure fl_multiline_input_draw
(W : in System.Address);
pragma Import (C, fl_multiline_input_draw, "fl_multiline_input_draw");
+ pragma Inline (fl_multiline_input_draw);
function fl_multiline_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_multiline_input_handle, "fl_multiline_input_handle");
+ pragma Inline (fl_multiline_input_handle);
diff --git a/src/fltk-widgets-inputs-multiline.ads b/src/fltk-widgets-inputs-multiline.ads
index 81cab45..7559759 100644
--- a/src/fltk-widgets-inputs-multiline.ads
+++ b/src/fltk-widgets-inputs-multiline.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Multiline is
type Multiline_Input is new Input with private;
+ type Multiline_Input_Reference (Data : not null access Multiline_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Multiline_Input);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Multiline;
diff --git a/src/fltk-widgets-inputs-outputs-multiline.adb b/src/fltk-widgets-inputs-outputs-multiline.adb
index bf67397..2d5b9cf 100644
--- a/src/fltk-widgets-inputs-outputs-multiline.adb
+++ b/src/fltk-widgets-inputs-outputs-multiline.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
procedure multiline_output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, multiline_output_set_draw_hook, "multiline_output_set_draw_hook");
+ pragma Inline (multiline_output_set_draw_hook);
procedure multiline_output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, multiline_output_set_handle_hook, "multiline_output_set_handle_hook");
+ pragma Inline (multiline_output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_multiline_output, "new_fl_multiline_output");
+ pragma Inline (new_fl_multiline_output);
procedure free_fl_multiline_output
(F : in System.Address);
pragma Import (C, free_fl_multiline_output, "free_fl_multiline_output");
+ pragma Inline (free_fl_multiline_output);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
procedure fl_multiline_output_draw
(W : in System.Address);
pragma Import (C, fl_multiline_output_draw, "fl_multiline_output_draw");
+ pragma Inline (fl_multiline_output_draw);
function fl_multiline_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_multiline_output_handle, "fl_multiline_output_handle");
+ pragma Inline (fl_multiline_output_handle);
diff --git a/src/fltk-widgets-inputs-outputs-multiline.ads b/src/fltk-widgets-inputs-outputs-multiline.ads
index 8a86280..05c13bf 100644
--- a/src/fltk-widgets-inputs-outputs-multiline.ads
+++ b/src/fltk-widgets-inputs-outputs-multiline.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Outputs.Multiline is
type Multiline_Output is new Output with private;
+ type Multiline_Output_Reference (Data : not null access Multiline_Output'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Multiline_Output);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Outputs.Multiline;
diff --git a/src/fltk-widgets-inputs-outputs.adb b/src/fltk-widgets-inputs-outputs.adb
index 00c7d0c..275c9be 100644
--- a/src/fltk-widgets-inputs-outputs.adb
+++ b/src/fltk-widgets-inputs-outputs.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Outputs is
procedure output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, output_set_draw_hook, "output_set_draw_hook");
+ pragma Inline (output_set_draw_hook);
procedure output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, output_set_handle_hook, "output_set_handle_hook");
+ pragma Inline (output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Outputs is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_output, "new_fl_output");
+ pragma Inline (new_fl_output);
procedure free_fl_output
(F : in System.Address);
pragma Import (C, free_fl_output, "free_fl_output");
+ pragma Inline (free_fl_output);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Outputs is
procedure fl_output_draw
(W : in System.Address);
pragma Import (C, fl_output_draw, "fl_output_draw");
+ pragma Inline (fl_output_draw);
function fl_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_output_handle, "fl_output_handle");
+ pragma Inline (fl_output_handle);
diff --git a/src/fltk-widgets-inputs-outputs.ads b/src/fltk-widgets-inputs-outputs.ads
index f686414..063b7bd 100644
--- a/src/fltk-widgets-inputs-outputs.ads
+++ b/src/fltk-widgets-inputs-outputs.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Outputs is
type Output is new Input with private;
+ type Output_Reference (Data : not null access Output'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Output);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Outputs;
diff --git a/src/fltk-widgets-inputs-secret.adb b/src/fltk-widgets-inputs-secret.adb
index 064c364..8fabd50 100644
--- a/src/fltk-widgets-inputs-secret.adb
+++ b/src/fltk-widgets-inputs-secret.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Secret is
procedure secret_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, secret_input_set_draw_hook, "secret_input_set_draw_hook");
+ pragma Inline (secret_input_set_draw_hook);
procedure secret_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, secret_input_set_handle_hook, "secret_input_set_handle_hook");
+ pragma Inline (secret_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Secret is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_secret_input, "new_fl_secret_input");
+ pragma Inline (new_fl_secret_input);
procedure free_fl_secret_input
(F : in System.Address);
pragma Import (C, free_fl_secret_input, "free_fl_secret_input");
+ pragma Inline (free_fl_secret_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Secret is
procedure fl_secret_input_draw
(W : in System.Address);
pragma Import (C, fl_secret_input_draw, "fl_secret_input_draw");
+ pragma Inline (fl_secret_input_draw);
function fl_secret_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_secret_input_handle, "fl_secret_input_handle");
+ pragma Inline (fl_secret_input_handle);
diff --git a/src/fltk-widgets-inputs-secret.ads b/src/fltk-widgets-inputs-secret.ads
index 53ccaad..796b28f 100644
--- a/src/fltk-widgets-inputs-secret.ads
+++ b/src/fltk-widgets-inputs-secret.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Secret is
type Secret_Input is new Input with private;
+ type Secret_Input_Reference (Data : not null access Secret_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Secret_Input);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Secret;
diff --git a/src/fltk-widgets-inputs.adb b/src/fltk-widgets-inputs.adb
index 5196911..9064ee8 100644
--- a/src/fltk-widgets-inputs.adb
+++ b/src/fltk-widgets-inputs.adb
@@ -17,10 +17,12 @@ package body FLTK.Widgets.Inputs is
procedure input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, input_set_draw_hook, "input_set_draw_hook");
+ pragma Inline (input_set_draw_hook);
procedure input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, input_set_handle_hook, "input_set_handle_hook");
+ pragma Inline (input_set_handle_hook);
@@ -30,10 +32,12 @@ package body FLTK.Widgets.Inputs is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_input, "new_fl_input");
+ pragma Inline (new_fl_input);
procedure free_fl_input
(F : in System.Address);
pragma Import (C, free_fl_input, "free_fl_input");
+ pragma Inline (free_fl_input);
@@ -42,33 +46,39 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_copy, "fl_input_copy");
+ pragma Inline (fl_input_copy);
function fl_input_cut
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_cut, "fl_input_cut");
+ pragma Inline (fl_input_cut);
function fl_input_cut2
(I : in System.Address;
B : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_cut2, "fl_input_cut2");
+ pragma Inline (fl_input_cut2);
function fl_input_cut3
(I : in System.Address;
A, B : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_cut3, "fl_input_cut3");
+ pragma Inline (fl_input_cut3);
function fl_input_copy_cuts
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_copy_cuts, "fl_input_copy_cuts");
+ pragma Inline (fl_input_copy_cuts);
function fl_input_undo
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_undo, "fl_input_undo");
+ pragma Inline (fl_input_undo);
@@ -77,31 +87,37 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_readonly, "fl_input_get_readonly");
+ pragma Inline (fl_input_get_readonly);
procedure fl_input_set_readonly
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_readonly, "fl_input_set_readonly");
+ pragma Inline (fl_input_set_readonly);
function fl_input_get_tab_nav
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_tab_nav, "fl_input_get_tab_nav");
+ pragma Inline (fl_input_get_tab_nav);
procedure fl_input_set_tab_nav
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_tab_nav, "fl_input_set_tab_nav");
+ pragma Inline (fl_input_set_tab_nav);
function fl_input_get_wrap
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_wrap, "fl_input_get_wrap");
+ pragma Inline (fl_input_get_wrap);
procedure fl_input_set_wrap
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_wrap, "fl_input_set_wrap");
+ pragma Inline (fl_input_set_wrap);
@@ -110,43 +126,51 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_input_type, "fl_input_get_input_type");
+ pragma Inline (fl_input_get_input_type);
procedure fl_input_set_input_type
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_input_type, "fl_input_set_input_type");
+ pragma Inline (fl_input_set_input_type);
function fl_input_get_shortcut
(I : in System.Address)
return Interfaces.C.unsigned_long;
pragma Import (C, fl_input_get_shortcut, "fl_input_get_shortcut");
+ pragma Inline (fl_input_get_shortcut);
procedure fl_input_set_shortcut
(I : in System.Address;
T : in Interfaces.C.unsigned_long);
pragma Import (C, fl_input_set_shortcut, "fl_input_set_shortcut");
+ pragma Inline (fl_input_set_shortcut);
function fl_input_get_mark
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_mark, "fl_input_get_mark");
+ pragma Inline (fl_input_get_mark);
function fl_input_set_mark
(I : in System.Address;
T : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_set_mark, "fl_input_set_mark");
+ pragma Inline (fl_input_set_mark);
function fl_input_get_position
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_position, "fl_input_get_position");
+ pragma Inline (fl_input_get_position);
function fl_input_set_position
(I : in System.Address;
T : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_set_position, "fl_input_set_position");
+ pragma Inline (fl_input_set_position);
@@ -156,6 +180,7 @@ package body FLTK.Widgets.Inputs is
P : in Interfaces.C.int)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_index, "fl_input_index");
+ pragma Inline (fl_input_index);
function fl_input_insert
(I : in System.Address;
@@ -163,6 +188,7 @@ package body FLTK.Widgets.Inputs is
L : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_insert, "fl_input_insert");
+ pragma Inline (fl_input_insert);
function fl_input_replace
(I : in System.Address;
@@ -171,12 +197,14 @@ package body FLTK.Widgets.Inputs is
L : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_replace, "fl_input_replace");
+ pragma Inline (fl_input_replace);
procedure fl_input_set_value
(I : in System.Address;
T : in Interfaces.C.char_array;
L : in Interfaces.C.int);
pragma Import (C, fl_input_set_value, "fl_input_set_value");
+ pragma Inline (fl_input_set_value);
@@ -185,16 +213,19 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_maximum_size, "fl_input_get_maximum_size");
+ pragma Inline (fl_input_get_maximum_size);
procedure fl_input_set_maximum_size
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_maximum_size, "fl_input_set_maximum_size");
+ pragma Inline (fl_input_set_maximum_size);
function fl_input_get_size
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_size, "fl_input_get_size");
+ pragma Inline (fl_input_get_size);
@@ -203,41 +234,49 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_get_cursor_color, "fl_input_get_cursor_color");
+ pragma Inline (fl_input_get_cursor_color);
procedure fl_input_set_cursor_color
(I : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_input_set_cursor_color, "fl_input_set_cursor_color");
+ pragma Inline (fl_input_set_cursor_color);
function fl_input_get_textcolor
(I : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_get_textcolor, "fl_input_get_textcolor");
+ pragma Inline (fl_input_get_textcolor);
procedure fl_input_set_textcolor
(I : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_input_set_textcolor, "fl_input_set_textcolor");
+ pragma Inline (fl_input_set_textcolor);
function fl_input_get_textfont
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_textfont, "fl_input_get_textfont");
+ pragma Inline (fl_input_get_textfont);
procedure fl_input_set_textfont
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_textfont, "fl_input_set_textfont");
+ pragma Inline (fl_input_set_textfont);
function fl_input_get_textsize
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_textsize, "fl_input_get_textsize");
+ pragma Inline (fl_input_get_textsize);
procedure fl_input_set_textsize
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_textsize, "fl_input_set_textsize");
+ pragma Inline (fl_input_set_textsize);
@@ -246,6 +285,7 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address;
W, H : in Interfaces.C.int);
pragma Import (C, fl_input_set_size, "fl_input_set_size");
+ pragma Inline (fl_input_set_size);
@@ -253,12 +293,14 @@ package body FLTK.Widgets.Inputs is
procedure fl_input_draw
(W : in System.Address);
pragma Import (C, fl_input_draw, "fl_input_draw");
+ pragma Inline (fl_input_draw);
function fl_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_handle, "fl_input_handle");
+ pragma Inline (fl_input_handle);
@@ -528,6 +570,7 @@ package body FLTK.Widgets.Inputs is
(This : in Input)
return String is
begin
+ -- pointer to internal buffer only, so no Free required
return Interfaces.C.Strings.Value (fl_input_get_value (This.Void_Ptr));
end Get_Value;
@@ -672,6 +715,8 @@ package body FLTK.Widgets.Inputs is
fl_input_set_input_type (This.Void_Ptr, Input_Kind_Values (To));
end Set_Input_Type;
+ pragma Inline (Set_Input_Type);
+
end Extra;
diff --git a/src/fltk-widgets-inputs.ads b/src/fltk-widgets-inputs.ads
index d3bcbba..c22efb3 100644
--- a/src/fltk-widgets-inputs.ads
+++ b/src/fltk-widgets-inputs.ads
@@ -11,7 +11,7 @@ package FLTK.Widgets.Inputs is
type Input is new Widget with private;
- type Input_Cursor (Data : access Input'Class) is limited null record
+ type Input_Reference (Data : not null access Input'Class) is limited null record
with Implicit_Dereference => Data;
type Input_Kind is
@@ -236,6 +236,62 @@ private
+ pragma Inline (Copy);
+ pragma Inline (Cut);
+ pragma Inline (Copy_Cuts);
+ pragma Inline (Undo);
+
+
+ pragma Inline (Has_Changed);
+ pragma Inline (Clear_Changed);
+ pragma Inline (Is_Readonly);
+ pragma Inline (Set_Readonly);
+ pragma Inline (Is_Tab_Nav);
+ pragma Inline (Set_Tab_Nav);
+ pragma Inline (Is_Wrap);
+ pragma Inline (Set_Wrap);
+
+
+ pragma Inline (Get_Input_Type);
+ pragma Inline (Get_Shortcut_Key);
+ pragma Inline (Set_Shortcut_Key);
+ pragma Inline (Get_Mark);
+ pragma Inline (Set_Mark);
+ pragma Inline (Get_Position);
+ pragma Inline (Set_Position);
+
+
+ pragma Inline (Index);
+ pragma Inline (Insert);
+ pragma Inline (Replace);
+ pragma Inline (Get_Value);
+ pragma Inline (Set_Value);
+
+
+ pragma Inline (Get_Maximum_Size);
+ pragma Inline (Set_Maximum_Size);
+ pragma Inline (Size);
+
+
+ pragma Inline (Get_Cursor_Color);
+ pragma Inline (Set_Cursor_Color);
+ 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);
+
+
+ pragma Inline (Resize);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
+
+
Input_Kind_Values : array (Input_Kind) of Interfaces.C.int :=
(Normal_Kind => 0,
Float_Kind => 1,
@@ -252,6 +308,7 @@ private
(F : in System.Address)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, fl_input_get_value, "fl_input_get_value");
+ pragma Inline (fl_input_get_value);
end FLTK.Widgets.Inputs;