From 617353265e4dc4e0280b565f2cd9e7749ce52bfd Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Tue, 17 Apr 2018 16:00:26 +1000 Subject: More polishing --- doc/blank_template.html | 5 +- doc/common_dialogs.html | 263 ++++++++++++ doc/fl_clock.html | 107 +++++ doc/fl_clock_output.html | 184 ++++++++ doc/fl_double_window.html | 139 ++++++ doc/fl_file_input.html | 155 +++++++ doc/fl_float_input.html | 93 ++++ doc/fl_input.html | 545 ++++++++++++++++++++++++ doc/fl_int_input.html | 93 ++++ doc/fl_menu_window.html | 161 +++++++ doc/fl_multiline_input.html | 84 ++++ doc/fl_multiline_output.html | 84 ++++ doc/fl_output.html | 84 ++++ doc/fl_round_clock.html | 93 ++++ doc/fl_secret_input.html | 86 ++++ doc/fl_single_window.html | 129 ++++++ progress.txt | 36 +- src/c_fl_clock.cpp | 13 + src/c_fl_clock.h | 18 +- src/c_fl_clock_output.cpp | 21 +- src/c_fl_clock_output.h | 27 +- src/c_fl_dialog.cpp | 4 + src/c_fl_dialog.h | 41 +- src/c_fl_double_window.h | 20 +- src/c_fl_file_input.cpp | 11 + src/c_fl_file_input.h | 24 +- src/c_fl_float_input.h | 12 +- src/c_fl_input.h | 86 ++-- src/c_fl_int_input.h | 12 +- src/c_fl_menu_window.h | 26 +- src/c_fl_multiline_input.h | 12 +- src/c_fl_multiline_output.h | 12 +- src/c_fl_output.h | 13 +- src/c_fl_round_clock.cpp | 8 + src/c_fl_round_clock.h | 17 +- src/c_fl_secret_input.h | 12 +- src/c_fl_single_window.h | 18 +- src/fltk-dialogs.adb | 84 ++-- src/fltk-dialogs.ads | 40 +- src/fltk-widgets-clocks-updated-round.adb | 25 ++ src/fltk-widgets-clocks-updated-round.ads | 13 + src/fltk-widgets-clocks-updated.adb | 56 +++ src/fltk-widgets-clocks-updated.ads | 19 + src/fltk-widgets-clocks.adb | 31 ++ src/fltk-widgets-clocks.ads | 22 + src/fltk-widgets-groups-input_choices.adb | 2 +- src/fltk-widgets-groups-input_choices.ads | 2 +- src/fltk-widgets-groups-windows-double.adb | 10 + src/fltk-widgets-groups-windows-double.ads | 13 + src/fltk-widgets-groups-windows-single-menu.adb | 17 +- src/fltk-widgets-groups-windows-single-menu.ads | 20 +- src/fltk-widgets-groups-windows-single.adb | 9 + src/fltk-widgets-groups-windows-single.ads | 13 + src/fltk-widgets-inputs-file.adb | 45 ++ src/fltk-widgets-inputs-file.ads | 30 ++ src/fltk-widgets-inputs-float.adb | 6 + src/fltk-widgets-inputs-float.ads | 12 + src/fltk-widgets-inputs-integer.adb | 6 + src/fltk-widgets-inputs-integer.ads | 12 + src/fltk-widgets-inputs-multiline.adb | 6 + src/fltk-widgets-inputs-multiline.ads | 9 + src/fltk-widgets-inputs-outputs-multiline.adb | 6 + src/fltk-widgets-inputs-outputs-multiline.ads | 9 + src/fltk-widgets-inputs-outputs.adb | 6 + src/fltk-widgets-inputs-outputs.ads | 9 + src/fltk-widgets-inputs-secret.adb | 6 + src/fltk-widgets-inputs-secret.ads | 9 + src/fltk-widgets-inputs.adb | 45 ++ src/fltk-widgets-inputs.ads | 59 ++- 69 files changed, 3177 insertions(+), 222 deletions(-) create mode 100644 doc/common_dialogs.html create mode 100644 doc/fl_clock.html create mode 100644 doc/fl_clock_output.html create mode 100644 doc/fl_double_window.html create mode 100644 doc/fl_file_input.html create mode 100644 doc/fl_float_input.html create mode 100644 doc/fl_input.html create mode 100644 doc/fl_int_input.html create mode 100644 doc/fl_menu_window.html create mode 100644 doc/fl_multiline_input.html create mode 100644 doc/fl_multiline_output.html create mode 100644 doc/fl_output.html create mode 100644 doc/fl_round_clock.html create mode 100644 doc/fl_secret_input.html create mode 100644 doc/fl_single_window.html 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 @@ Package name - + + @@ -28,7 +29,7 @@ Types - + 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 @@ + + + + + + + Common Dialogs Binding Map + + + + + + +

Common Dialogs Binding Map

+ + + + + + + + + + +
Package name
Fl_AskFLTK.Dialogs
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Types
Fl_BeepBeep_Kind
 Choice
 RGB_Float
 RGB_Int
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+void fl_alert(const char *fmt,...);
+
+procedure Alert
+       (Message : String);
+
+int fl_ask(const char *fmt,...);
+
Present but disabled due to fl_ask being deprecated
+void fl_beep(int type);
+
+procedure Beep
+       (Kind : in Beep_Kind);
+
+int fl_choice(const char *fmt, const char *b0, const char *b1, const char *b2,...);
+
+function Three_Way_Choice
+       (Message, Button1, Button2, Button3 : in String)
+    return Choice;
+
+int fl_color_chooser(const char *name, double &r, double &g, double &b, int cmode);
+
+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;
+
+int fl_color_chooser(const char *name, uchar &r, uchar &g, uchar &b, int cmode);
+
+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;
+
+char * fl_dir_chooser(const char *message, const char *fname, int relative);
+
+function Dir_Chooser
+       (Message, Default : in String;
+        Relative         : in Boolean := False)
+    return String;
+
+char * fl_file_chooser(const char *message, const char *pat, const char *fname, int relative);
+
+function File_Chooser
+       (Message, Filter_Pattern, Default : in String;
+        Relative                         : in Boolean := False)
+    return String;
+
+void fl_file_chooser_callback(void(*cb)(const char *));
+
 
+void fl_file_chooser_ok_label(const char *l);
+
 
+const char * fl_input(const char *fmt, const char *defstr,...);
+
+function Text_Input
+       (Message : in String;
+        Default : in String := "")
+    return String;
+
+void fl_message(const char *fmt,...);
+
+procedure Message_Box
+       (Message : in String);
+
+void fl_message_font(Fl_Font f, Fl_Fontsize s);
+
+procedure Set_Message_Font
+       (Font : in Font_Kind;
+        Size : in Font_Size);
+
+void fl_message_hotspot(int enable);
+
+procedure Set_Hotspot
+       (To : in Boolean);
+
+int fl_message_hotspot(void);
+
+function Get_Hotspot
+    return Boolean;
+
+Fl_Widget * fl_message_icon();
+
+function Get_Message_Icon
+    return FLTK.Widgets.Boxes.Box_Reference;
+
+void fl_message_title(const char *title);
+
+procedure Set_Message_Title
+       (To : in String);
+
+void fl_message_title_default(const char *title);
+
+procedure Set_Message_Title_Default
+       (To : in String);
+
+const char * fl_password(const char *fmt, const char *defstr,...);
+
+function Password
+       (Message : in String;
+        Default : in String := "")
+    return String;
+
+ + + + + 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 @@ + + + + + + + Fl_Clock Binding Map + + + + + + +

Fl_Clock Binding Map

+ + + + + + + + + +
Package name
Fl_ClockFLTK.Widgets.Clocks.Updated
+ + + + + + + + + + + + + + + + +
Types
Fl_ClockUpdated_Clock
 Updated_Clock_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Clock(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Updated_Clock;
+
+Fl_Clock(uchar t, int X, int Y, int W, int H, const char *L);
+
+function Create
+       (Kind       : in Box_Kind;
+        X, Y, W, H : in Integer;
+        Text       : in String)
+    return Updated_Clock;
+
 
+procedure Draw
+       (This : in out Updated_Clock);
+
 
+procedure Draw
+       (This       : in out Clock;
+        X, Y, W, H : in     Integer);
+
+int handle(int);
+
+function Handle
+       (This  : in out Updated_Clock;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Clock_Output Binding Map + + + + + + +

Fl_Clock_Output Binding Map

+ + + + + + + + + +
Package name
Fl_Clock_OutputFLTK.Widgets.Clocks
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Types
Fl_Clock_OutputClock
 Clock_Reference
 Hour
 Minute
 Second
 Time_Value
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Clock_Output(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Clock;
+
+void draw();
+
+procedure Draw
+       (This : in out Clock);
+
+void draw(int X, int Y, int W, int H);
+
+procedure Draw
+       (This       : in out Clock;
+        X, Y, W, H : in     Integer);
+
 
+function Handle
+       (This  : in out Clock;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+int hour() const;
+
+function Get_Hour
+       (This : in Clock)
+    return Hour;
+
+int minute() const;
+
+function Get_Minute
+       (This : in Clock)
+    return Minute;
+
+int second() const;
+
+function Get_Second
+       (This : in Clock)
+    return Second;
+
+void value(ulong v);
+
+procedure Set_Time
+       (This : in out Clock;
+        To   : in     Time_Value);
+
+void value(int H, int m, int s);
+
+procedure Set_Time
+       (This    : in out Clock;
+        Hours   : in     Hour;
+        Minutes : in     Minute;
+        Seconds : in     Second);
+
+ulong value() const;
+
+function Get_Time
+       (This : in Clock)
+    return Time_Value;
+
+ + + + + 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 @@ + + + + + + + Fl_Double_Window Binding Map + + + + + + +

Fl_Double_Window Binding Map

+ + + + + + + + + + +
Package name
Fl_Double_WindowFLTK.Widgets.Groups.Windows.Double
+ + + + + + + + + + + + + + + + +
Types
Fl_Double_WindowDouble_Window
 Double_Window_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Double_Window(int W, int H, const char *L=0);
+
+function Create
+       (W, H : in Integer)
+    return Double_Window;
+
+Fl_Double_Window(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Double_Window;
+
 
+procedure Draw
+       (This : in out Double_Window);
+
+void flush();
+
+procedure Flush
+       (This : in out Double_Window);
+
 
+function Handle
+       (This  : in out Double_Window;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+void hide();
+
+procedure Hide
+       (This : in out Double_Window);
+
+void resize(int,int,int,int);
+
 
+void show();
+
+procedure Show
+       (This : in out Double_Window);
+
+void show(int a, char **b);
+
 
+ + + + + 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 @@ + + + + + + + Fl_File_Input Binding Map + + + + + + +

Fl_File_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_File_InputFLTK.Widgets.Inputs.File
+ + + + + + + + + + + + + + + + +
Types
Fl_File_InputFile_Input
 File_Input_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_File_Input(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return File_Input;
+
+Fl_Boxtype down_box() const;
+
+function Get_Down_Box
+       (This : in File_Input)
+    return Box_Kind;
+
+void down_box(Fl_Boxtype b);
+
+procedure Set_Down_Box
+       (This : in out File_Input;
+        To   : in     Box_Kind);
+
+virtual void draw();
+
+procedure Draw
+       (This : in out File_Input);
+
+Fl_Color errorcolor() const;
+
+function Get_Error_Color
+       (This : in File_Input)
+    return Color;
+
+void errorcolor(Fl_Color c);
+
+procedure Set_Error_Color
+       (This : in out File_Input;
+        To   : in     Color);
+
+virtual int handle(int event);
+
+function Handle
+       (This  : in out File_Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+int value(const char *str);
+int value(const char *str, int len);
+
+procedure Set_Value
+       (This : in out Input;
+        To   : in     String);
+
+const char * value();
+
+function Get_Value
+       (This : in Input)
+    return String;
+
+ + + + + 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 @@ + + + + + + + Fl_Float_Input Binding Map + + + + + + +

Fl_Float_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_Float_InputFLTK.Widgets.Inputs.Float
+ + + + + + + + + + + + + + + + +
Types
Fl_Float_InputFloat_Input
 Float_Input_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Float_Input(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Float_Input;
+
 
+procedure Draw
+       (This : in out Float_Input);
+
 
+function Get_Value
+       (This : in Float_Input)
+    return Standard.Float;
+
 
+function Handle
+       (This  : in out Float_Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Input Binding Map + + + + + + +

Fl_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_Input_
Fl_Input
FLTK.Widgets.Inputs
+ + + + + + + + + + + + + + + + + + + + + +
Types
Fl_Input_
Fl_Input
Input
 Input_Reference
 Input_Kind
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Input_(int, int, int, int, const char*=0);
+Fl_Input(int, int, int, int, const char*=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Input;
+
 
+function Has_Changed
+       (This : in Input)
+    return Boolean;
+
 
+procedure Clear_Changed
+       (This : in out Input);
+
+int copy(int clipboard);
+
+procedure Copy
+       (This : in out Input);
+
+int copy_cuts();
+
+procedure Copy_Cuts
+       (This : in out Input);
+
+Fl_Color cursor_color() const;
+
+function Get_Cursor_Color
+       (This : in Input)
+    return Color;
+
+void cursor_color(Fl_Color n);
+
+procedure Set_Cursor_Color
+       (This : in out Input;
+        To   : in     Color);
+
+int cut();
+
+procedure Cut
+       (This : in out Input);
+
+int cut(int n);
+
+procedure Cut
+       (This      : in out Input;
+        Num_Bytes : in     Integer);
+
+int cut(int a, int b);
+
+procedure Cut
+       (This          : in out Input;
+        Start, Finish : in     Integer);
+
+void draw();
+
+procedure Draw
+       (This : in out Input);
+
+int handle(int);
+
+function Handle
+       (This  : in out Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+Fl_Char index(int i) const;
+
+function Index
+       (This  : in Input;
+        Place : in Integer)
+    return Character;
+
+int input_type() const;
+
+function Get_Input_Type
+       (This : in Input)
+    return Input_Kind;
+
+void input_type(int t);
+
+procedure Set_Input_Type
+       (This : in out Input;
+        To   : in     Input_Kind);
+
+int insert(const char *t, int l=0);
+
+procedure Insert
+       (This : in out Input;
+        Str  : in     String);
+
+int mark() const;
+
+function Get_Mark
+       (This : in Input)
+    return Natural;
+
+int mark(int m);
+
+procedure Set_Mark
+       (This : in out Input;
+        To   : in     Natural);
+
+int maximum_size() const;
+
+function Get_Maximum_Size
+       (This : in Input)
+    return Natural;
+
+void maximum_size(int m);
+
+procedure Set_Maximum_Size
+       (This : in out Input;
+        To   : in     Natural);
+
+int position() const;
+
+function Get_Position
+       (This : in Input)
+    return Natural;
+
+int position(int p, int m);
+
 
+int position(int p);
+
+procedure Set_Position
+       (This : in out Input;
+        To   : in     Natural);
+
+int readonly() const;
+
+function Is_Readonly
+       (This : in Input)
+    return Boolean;
+
+void readonly(int b);
+
+procedure Set_Readonly
+       (This : in out Input;
+        To   : in     Boolean);
+
+int replace(int b, int e, const char *text, int ilen=0);
+
+procedure Replace
+       (This     : in out Input;
+        From, To : in     Natural;
+        New_Text : in     String);
+
+void resize(int, int, int, int);
+
 
+int shortcut() const;
+
+function Get_Shortcut_Key
+       (This : in Input)
+    return Shortcut_Key;
+
+void shortcut(int s);
+
+procedure Set_Shortcut_Key
+       (This : in out Input;
+        To   : in     Shortcut_Key);
+
+int size() const;
+
+function Size
+       (This : in Input)
+    return Natural;
+
+void size(int W, int H);
+
+procedure Resize
+       (This : in out Input;
+        W, H : in     Integer);
+
+int static_value(const char *);
+
 
+int static_value(const char *, int);
+
 
+void tab_nav(int val);
+
+procedure Set_Tab_Nav
+       (This : in out Input;
+        To   : in     Boolean);
+
+int tab_nav() const;
+
+function Is_Tab_Nav
+       (This : in Input)
+    return Boolean;
+
+Fl_Color textcolor() const;
+
+function Get_Text_Color
+       (This : in Input)
+    return Color;
+
+void textcolor(Fl_Color n);
+
+procedure Set_Text_Color
+       (This : in out Input;
+        To   : in     Color);
+
+Fl_Font textfont() const;
+
+function Get_Text_Font
+       (This : in Input)
+    return Font_Kind;
+
+void textfont(Fl_Font s);
+
+procedure Set_Text_Font
+       (This : in out Input;
+        To   : in     Font_Kind);
+
+Fl_Fontsize textsize() const;
+
+function Get_Text_Size
+       (This : in Input)
+    return Font_Size;
+
+void textsize(Fl_Fontsize s);
+
+procedure Set_Text_Size
+       (This : in out Input;
+        To   : in     Font_Size);
+
+int undo();
+
+procedure Undo
+       (This : in out Input);
+
+int value(const char *);
+int value(const char *, int);
+
+procedure Set_Value
+       (This : in out Input;
+        To   : in     String);
+
+const char * value() const;
+
+function Get_Value
+       (This : in Input)
+    return String;
+
+int wrap() const;
+
+function Is_Wrap
+       (This : in Input)
+    return Boolean;
+
+void wrap(int b);
+
+procedure Set_Wrap
+       (This : in out Input;
+        To   : in     Boolean);
+
+ + + + + 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 @@ + + + + + + + Fl_Int_Input Binding Map + + + + + + +

Fl_Int_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_Int_InputFLTK.Widgets.Inputs.Integer
+ + + + + + + + + + + + + + + + +
Types
Fl_Int_InputInteger_Input
 Integer_Input_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Int_Input(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Integer_Input;
+
 
+procedure Draw
+       (This : in out Integer_Input);
+
 
+function Get_Value
+       (This : in Integer_Input)
+    return Standard.Integer;
+
 
+function Handle
+       (This  : in out Integer_Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Menu_Window Binding Map + + + + + + +

Fl_Menu_Window Binding Map

+ + + + + + + + + + +
Package name
Fl_Menu_WindowFLTK.Widgets.Groups.Windows.Single.Menu
+ + + + + + + + + + + + + + + + +
Types
Fl_Menu_WindowMenu_Window
 Menu_Window_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Menu_Window(int W, int H, const char *L=0);
+
+function Create
+       (W, H : in Integer)
+    return Menu_Window;
+
+Fl_Menu_Window(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Menu_Window;
+
+void clear_overlay();
+
See set_overlay();
 
+procedure Draw
+       (This : in out Menu_Window);
+
+void erase();
+
 
+void flush();
+
+procedure Flush
+       (This : in out Menu_Window);
+
 
+function Handle
+       (This  : in out Menu_Window;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+void hide();
+
+procedure Hide
+       (This : in out Menu_Window);
+
+unsigned int overlay();
+
+function Is_Overlay
+       (This : in Menu_Window)
+    return Boolean;
+
+void set_overlay();
+
+procedure Set_Overlay
+       (This  : in out Menu_Window;
+        Value : in     Boolean);
+
+void show();
+
+procedure Show
+       (This : in out Menu_Window);
+
+ + + + + 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 @@ + + + + + + + Fl_Multiline_Input Binding Map + + + + + + +

Fl_Multiline_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_Multiline_InputFLTK.Widgets.Inputs.Multiline
+ + + + + + + + + + + + + + + + +
Types
Fl_Multiline_InputMultiline_Input
 Multiline_Input_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Multiline_Input(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Multiline_Input;
+
 
+procedure Draw
+       (This : in out Multiline_Input);
+
 
+function Handle
+       (This  : in out Multiline_Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Multiline_Output Binding Map + + + + + + +

Fl_Multiline_Output Binding Map

+ + + + + + + + + + +
Package name
Fl_Multiline_OutputFLTK.Widgets.Inputs.Outputs.Multiline
+ + + + + + + + + + + + + + + + +
Types
Fl_MultilineOutputMultiline_Output
 Multiline_Output_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Multiline_Output(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Multiline_Output;
+
 
+procedure Draw
+       (This : in out Multiline_Output);
+
 
+function Handle
+       (This  : in out Multiline_Output;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Output Binding Map + + + + + + +

Fl_Output Binding Map

+ + + + + + + + + + +
Package name
Fl_OutputFLTK.Widgets.Inputs.Outputs
+ + + + + + + + + + + + + + + + +
Types
Fl_OutputOutput
 Output_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Output(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Output;
+
 
+procedure Draw
+       (This : in out Output);
+
 
+function Handle
+       (This  : in out Output;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Round_Clock Binding Map + + + + + + +

Fl_Round_Clock Binding Map

+ + + + + + + + + + +
Package name
Fl_Round_ClockFLTK.Widgets.Clocks.Updated.Round
+ + + + + + + + + + + + + + + + +
Types
Fl_Round_ClockRound_Clock
 Round_Clock_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Round_Clock(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Round_Clock;
+
 
+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)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Secret_Input Binding Map + + + + + + +

Fl_Secret_Input Binding Map

+ + + + + + + + + + +
Package name
Fl_Secret_InputFLTK.Widgets.Inputs.Secret
+ + + + + + + + + + + + + + + + +
Types
Fl_Secret_InputSecret_Input
 Secret_Input_Reference
+ + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Secret_Input(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Secret_Input;
+
 
+procedure Draw
+       (This : in out Secret_Input);
+
+int handle(int);
+
+function Handle
+       (This  : in out Secret_Input;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+ + + + + 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 @@ + + + + + + + Fl_Single_Window Binding Map + + + + + + +

Fl_Single_Window Binding Map

+ + + + + + + + + + +
Package name
Fl_Single_WindowFLTK.Widgets.Groups.Windows.Single
+ + + + + + + + + + + + + + + + +
Types
Fl_Single_WindowSingle_Window
 Single_Window_Reference
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Functions and Procedures
+Fl_Single_Window(int W, int H, const char *L=0);
+
+function Create
+       (W, H : in Integer)
+    return Single_Window;
+
+Fl_Single_Window(int X, int Y, int W, int H, const char *L=0);
+
+function Create
+       (X, Y, W, H : in Integer;
+        Text       : in String)
+    return Single_Window;
+
 
+procedure Draw
+       (This : in out Single_Window);
+
+void flush();
+
+procedure Flush
+       (This : in out Single_Window);
+
 
+function Handle
+       (This  : in out Single_Window;
+        Event : in     Event_Kind)
+    return Event_Outcome;
+
+int make_current();
+
 
+void show();
+
+procedure Show
+       (This : in out Single_Window);
+
+void show(int a, char **b);
+
 
+ + + + + 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(c); } + + +void fl_clock_draw2(CLOCK c, int x, int y, int w, int h) { + reinterpret_cast(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(c)->hour(); + return reinterpret_cast(c)->Fl_Clock_Output::hour(); } int fl_clock_output_get_minute(CLOCK_OUTPUT c) { - return reinterpret_cast(c)->minute(); + return reinterpret_cast(c)->Fl_Clock_Output::minute(); } int fl_clock_output_get_second(CLOCK_OUTPUT c) { - return reinterpret_cast(c)->second(); + return reinterpret_cast(c)->Fl_Clock_Output::second(); } ulong fl_clock_output_get_value(CLOCK_OUTPUT c) { - return reinterpret_cast(c)->value(); + return reinterpret_cast(c)->Fl_Clock_Output::value(); } void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v) { - reinterpret_cast(c)->value(v); + reinterpret_cast(c)->Fl_Clock_Output::value(v); } void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s) { - reinterpret_cast(c)->value(h,m,s); + reinterpret_cast(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(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(i)->value(); +} + +void fl_file_input_set_value(FILE_INPUT i, const char * s, int len) { + reinterpret_cast(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(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; -- cgit