summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2018-04-17 16:00:26 +1000
committerJed Barber <jjbarber@y7mail.com>2018-04-17 16:00:26 +1000
commit617353265e4dc4e0280b565f2cd9e7749ce52bfd (patch)
treeb03cbfad780fb426ef42660ff6e112cdcaeda9f4 /src
parenta4b6a06f372923fb38ae4d3c7e0429ce93ea7748 (diff)
More polishing
Diffstat (limited to 'src')
-rw-r--r--src/c_fl_clock.cpp13
-rw-r--r--src/c_fl_clock.h18
-rw-r--r--src/c_fl_clock_output.cpp21
-rw-r--r--src/c_fl_clock_output.h27
-rw-r--r--src/c_fl_dialog.cpp4
-rw-r--r--src/c_fl_dialog.h41
-rw-r--r--src/c_fl_double_window.h20
-rw-r--r--src/c_fl_file_input.cpp11
-rw-r--r--src/c_fl_file_input.h24
-rw-r--r--src/c_fl_float_input.h12
-rw-r--r--src/c_fl_input.h86
-rw-r--r--src/c_fl_int_input.h12
-rw-r--r--src/c_fl_menu_window.h26
-rw-r--r--src/c_fl_multiline_input.h12
-rw-r--r--src/c_fl_multiline_output.h12
-rw-r--r--src/c_fl_output.h13
-rw-r--r--src/c_fl_round_clock.cpp8
-rw-r--r--src/c_fl_round_clock.h17
-rw-r--r--src/c_fl_secret_input.h12
-rw-r--r--src/c_fl_single_window.h18
-rw-r--r--src/fltk-dialogs.adb84
-rw-r--r--src/fltk-dialogs.ads40
-rw-r--r--src/fltk-widgets-clocks-updated-round.adb25
-rw-r--r--src/fltk-widgets-clocks-updated-round.ads13
-rw-r--r--src/fltk-widgets-clocks-updated.adb56
-rw-r--r--src/fltk-widgets-clocks-updated.ads19
-rw-r--r--src/fltk-widgets-clocks.adb31
-rw-r--r--src/fltk-widgets-clocks.ads22
-rw-r--r--src/fltk-widgets-groups-input_choices.adb2
-rw-r--r--src/fltk-widgets-groups-input_choices.ads2
-rw-r--r--src/fltk-widgets-groups-windows-double.adb10
-rw-r--r--src/fltk-widgets-groups-windows-double.ads13
-rw-r--r--src/fltk-widgets-groups-windows-single-menu.adb17
-rw-r--r--src/fltk-widgets-groups-windows-single-menu.ads20
-rw-r--r--src/fltk-widgets-groups-windows-single.adb9
-rw-r--r--src/fltk-widgets-groups-windows-single.ads13
-rw-r--r--src/fltk-widgets-inputs-file.adb45
-rw-r--r--src/fltk-widgets-inputs-file.ads30
-rw-r--r--src/fltk-widgets-inputs-float.adb6
-rw-r--r--src/fltk-widgets-inputs-float.ads12
-rw-r--r--src/fltk-widgets-inputs-integer.adb6
-rw-r--r--src/fltk-widgets-inputs-integer.ads12
-rw-r--r--src/fltk-widgets-inputs-multiline.adb6
-rw-r--r--src/fltk-widgets-inputs-multiline.ads9
-rw-r--r--src/fltk-widgets-inputs-outputs-multiline.adb6
-rw-r--r--src/fltk-widgets-inputs-outputs-multiline.ads9
-rw-r--r--src/fltk-widgets-inputs-outputs.adb6
-rw-r--r--src/fltk-widgets-inputs-outputs.ads9
-rw-r--r--src/fltk-widgets-inputs-secret.adb6
-rw-r--r--src/fltk-widgets-inputs-secret.ads9
-rw-r--r--src/fltk-widgets-inputs.adb45
-rw-r--r--src/fltk-widgets-inputs.ads59
52 files changed, 854 insertions, 204 deletions
diff --git a/src/c_fl_clock.cpp b/src/c_fl_clock.cpp
index 89b19bc..10a8ad7 100644
--- a/src/c_fl_clock.cpp
+++ b/src/c_fl_clock.cpp
@@ -14,6 +14,7 @@ class My_Clock : public Fl_Clock {
friend void fl_clock_draw(CLOCK c);
friend void clock_set_handle_hook(CLOCK c, void * h);
friend int fl_clock_handle(CLOCK c, int e);
+ friend void fl_clock_draw2(CLOCK c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -63,8 +64,20 @@ CLOCK new_fl_clock(int x, int y, int w, int h, char* label) {
return c;
}
+CLOCK new_fl_clock2(uchar k, int x, int y, int w, int h, char* label) {
+ My_Clock *c = new My_Clock(k,x,y,w,h,label);
+ return c;
+}
+
void free_fl_clock(CLOCK c) {
delete reinterpret_cast<My_Clock*>(c);
}
+
+
+void fl_clock_draw2(CLOCK c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Clock*>(c)->Fl_Clock::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_clock.h b/src/c_fl_clock.h
index 844f428..26255b0 100644
--- a/src/c_fl_clock.h
+++ b/src/c_fl_clock.h
@@ -11,16 +11,22 @@ typedef void* CLOCK;
-extern "C" void clock_set_draw_hook(CLOCK c, void * d);
-extern "C" void fl_clock_draw(CLOCK c);
-extern "C" void clock_set_handle_hook(CLOCK c, void * h);
-extern "C" int fl_clock_handle(CLOCK c, int e);
+extern "C" inline void clock_set_draw_hook(CLOCK c, void * d);
+extern "C" inline void fl_clock_draw(CLOCK c);
+extern "C" inline void clock_set_handle_hook(CLOCK c, void * h);
+extern "C" inline int fl_clock_handle(CLOCK c, int e);
-extern "C" CLOCK new_fl_clock(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_clock(CLOCK c);
+extern "C" inline CLOCK new_fl_clock(int x, int y, int w, int h, char* label);
+extern "C" inline CLOCK new_fl_clock2(uchar k, int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_clock(CLOCK c);
+
+
+
+
+extern "C" inline void fl_clock_draw2(CLOCK c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_clock_output.cpp b/src/c_fl_clock_output.cpp
index 62f5e1b..b427068 100644
--- a/src/c_fl_clock_output.cpp
+++ b/src/c_fl_clock_output.cpp
@@ -14,6 +14,7 @@ class My_Clock_Output : public Fl_Clock_Output {
friend void fl_clock_output_draw(CLOCK_OUTPUT c);
friend void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
friend int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
+ friend void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -71,27 +72,35 @@ void free_fl_clock_output(CLOCK_OUTPUT c) {
int fl_clock_output_get_hour(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->hour();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::hour();
}
int fl_clock_output_get_minute(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->minute();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::minute();
}
int fl_clock_output_get_second(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->second();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::second();
}
ulong fl_clock_output_get_value(CLOCK_OUTPUT c) {
- return reinterpret_cast<My_Clock_Output*>(c)->value();
+ return reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value();
}
void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v) {
- reinterpret_cast<My_Clock_Output*>(c)->value(v);
+ reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value(v);
}
void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s) {
- reinterpret_cast<My_Clock_Output*>(c)->value(h,m,s);
+ reinterpret_cast<Fl_Clock_Output*>(c)->Fl_Clock_Output::value(h,m,s);
}
+
+
+
+void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Clock_Output*>(c)->Fl_Clock_Output::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_clock_output.h b/src/c_fl_clock_output.h
index 6a606a5..bb3b11f 100644
--- a/src/c_fl_clock_output.h
+++ b/src/c_fl_clock_output.h
@@ -11,28 +11,31 @@ typedef void* CLOCK_OUTPUT;
-extern "C" void clock_output_set_draw_hook(CLOCK_OUTPUT c, void * d);
-extern "C" void fl_clock_output_draw(CLOCK_OUTPUT c);
-extern "C" void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
-extern "C" int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
+extern "C" inline void clock_output_set_draw_hook(CLOCK_OUTPUT c, void * d);
+extern "C" inline void fl_clock_output_draw(CLOCK_OUTPUT c);
+extern "C" inline void clock_output_set_handle_hook(CLOCK_OUTPUT c, void * h);
+extern "C" inline int fl_clock_output_handle(CLOCK_OUTPUT c, int e);
-extern "C" CLOCK_OUTPUT new_fl_clock_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_clock_output(CLOCK_OUTPUT c);
+extern "C" inline CLOCK_OUTPUT new_fl_clock_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_clock_output(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_hour(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_minute(CLOCK_OUTPUT c);
-extern "C" int fl_clock_output_get_second(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_hour(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_minute(CLOCK_OUTPUT c);
+extern "C" inline int fl_clock_output_get_second(CLOCK_OUTPUT c);
-extern "C" ulong fl_clock_output_get_value(CLOCK_OUTPUT c);
-extern "C" void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v);
-extern "C" void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s);
+extern "C" inline ulong fl_clock_output_get_value(CLOCK_OUTPUT c);
+extern "C" inline void fl_clock_output_set_value(CLOCK_OUTPUT c, ulong v);
+extern "C" inline void fl_clock_output_set_value2(CLOCK_OUTPUT c, int h, int m, int s);
+
+
+extern "C" inline void fl_clock_output_draw2(CLOCK_OUTPUT c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_dialog.cpp b/src/c_fl_dialog.cpp
index b73c05c..1929859 100644
--- a/src/c_fl_dialog.cpp
+++ b/src/c_fl_dialog.cpp
@@ -41,6 +41,10 @@ int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b,
return fl_color_chooser(n, r, g, b, m);
}
+int dialog_fl_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m) {
+ return fl_color_chooser(n, r, g, b, m);
+}
+
char * dialog_fl_dir_chooser(const char * m, const char * d, int r) {
return fl_dir_chooser(m, d, r);
}
diff --git a/src/c_fl_dialog.h b/src/c_fl_dialog.h
index b366d2c..21765aa 100644
--- a/src/c_fl_dialog.h
+++ b/src/c_fl_dialog.h
@@ -4,26 +4,27 @@
#define FL_DIALOG_GUARD
-extern "C" void dialog_fl_alert(const char * m);
-//extern "C" int dialog_fl_ask(const char * m);
-extern "C" void dialog_fl_beep(int b);
-extern "C" int dialog_fl_choice(const char * m, const char * a, const char * b, const char * c);
-extern "C" const char * dialog_fl_input(const char * m, const char * d);
-extern "C" void dialog_fl_message(const char * m);
-extern "C" const char * dialog_fl_password(const char * m, const char * d);
-
-
-extern "C" int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b, int m);
-extern "C" char * dialog_fl_dir_chooser(const char * m, const char * d, int r);
-extern "C" char * dialog_fl_file_chooser(const char * m, const char * p, const char * d, int r);
-
-
-extern "C" int dialog_fl_get_message_hotspot(void);
-extern "C" void dialog_fl_set_message_hotspot(int v);
-extern "C" void dialog_fl_message_font(int f, int s);
-extern "C" void * dialog_fl_message_icon(void);
-extern "C" void dialog_fl_message_title(const char * t);
-extern "C" void dialog_fl_message_title_default(const char * t);
+extern "C" inline void dialog_fl_alert(const char * m);
+//extern "C" inline int dialog_fl_ask(const char * m);
+extern "C" inline void dialog_fl_beep(int b);
+extern "C" inline int dialog_fl_choice(const char * m, const char * a, const char * b, const char * c);
+extern "C" inline const char * dialog_fl_input(const char * m, const char * d);
+extern "C" inline void dialog_fl_message(const char * m);
+extern "C" inline const char * dialog_fl_password(const char * m, const char * d);
+
+
+extern "C" inline int dialog_fl_color_chooser(const char * n, double & r, double & g, double & b, int m);
+extern "C" inline int dialog_fl_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m);
+extern "C" inline char * dialog_fl_dir_chooser(const char * m, const char * d, int r);
+extern "C" inline char * dialog_fl_file_chooser(const char * m, const char * p, const char * d, int r);
+
+
+extern "C" inline int dialog_fl_get_message_hotspot(void);
+extern "C" inline void dialog_fl_set_message_hotspot(int v);
+extern "C" inline void dialog_fl_message_font(int f, int s);
+extern "C" inline void * dialog_fl_message_icon(void);
+extern "C" inline void dialog_fl_message_title(const char * t);
+extern "C" inline void dialog_fl_message_title_default(const char * t);
#endif
diff --git a/src/c_fl_double_window.h b/src/c_fl_double_window.h
index 96b6a1d..8334058 100644
--- a/src/c_fl_double_window.h
+++ b/src/c_fl_double_window.h
@@ -11,24 +11,24 @@ typedef void* DOUBLEWINDOW;
-extern "C" void double_window_set_draw_hook(DOUBLEWINDOW n, void * d);
-extern "C" void fl_double_window_draw(DOUBLEWINDOW n);
-extern "C" void double_window_set_handle_hook(DOUBLEWINDOW n, void * h);
-extern "C" int fl_double_window_handle(DOUBLEWINDOW n, int e);
+extern "C" inline void double_window_set_draw_hook(DOUBLEWINDOW n, void * d);
+extern "C" inline void fl_double_window_draw(DOUBLEWINDOW n);
+extern "C" inline void double_window_set_handle_hook(DOUBLEWINDOW n, void * h);
+extern "C" inline int fl_double_window_handle(DOUBLEWINDOW n, int e);
-extern "C" DOUBLEWINDOW new_fl_double_window(int x, int y, int w, int h, char* label);
-extern "C" DOUBLEWINDOW new_fl_double_window2(int w, int h);
-extern "C" void free_fl_double_window(DOUBLEWINDOW d);
+extern "C" inline DOUBLEWINDOW new_fl_double_window(int x, int y, int w, int h, char* label);
+extern "C" inline DOUBLEWINDOW new_fl_double_window2(int w, int h);
+extern "C" inline void free_fl_double_window(DOUBLEWINDOW d);
-extern "C" void fl_double_window_show(DOUBLEWINDOW d);
-extern "C" void fl_double_window_hide(DOUBLEWINDOW d);
-extern "C" void fl_double_window_flush(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_show(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_hide(DOUBLEWINDOW d);
+extern "C" inline void fl_double_window_flush(DOUBLEWINDOW d);
#endif
diff --git a/src/c_fl_file_input.cpp b/src/c_fl_file_input.cpp
index 50b600f..f4fcc4f 100644
--- a/src/c_fl_file_input.cpp
+++ b/src/c_fl_file_input.cpp
@@ -87,3 +87,14 @@ void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t) {
}
+
+
+const char * fl_file_input_get_value(FILE_INPUT i) {
+ return reinterpret_cast<Fl_File_Input*>(i)->value();
+}
+
+void fl_file_input_set_value(FILE_INPUT i, const char * s, int len) {
+ reinterpret_cast<Fl_File_Input*>(i)->value(s,len);
+}
+
+
diff --git a/src/c_fl_file_input.h b/src/c_fl_file_input.h
index 18d977e..f86fb3f 100644
--- a/src/c_fl_file_input.h
+++ b/src/c_fl_file_input.h
@@ -11,24 +11,28 @@ typedef void* FILE_INPUT;
-extern "C" void file_input_set_draw_hook(FILE_INPUT i, void * d);
-extern "C" void fl_file_input_draw(FILE_INPUT i);
-extern "C" void file_input_set_handle_hook(FILE_INPUT i, void * h);
-extern "C" int fl_file_input_handle(FILE_INPUT i, int e);
+extern "C" inline void file_input_set_draw_hook(FILE_INPUT i, void * d);
+extern "C" inline void fl_file_input_draw(FILE_INPUT i);
+extern "C" inline void file_input_set_handle_hook(FILE_INPUT i, void * h);
+extern "C" inline int fl_file_input_handle(FILE_INPUT i, int e);
-extern "C" FILE_INPUT new_fl_file_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_file_input(FILE_INPUT i);
+extern "C" inline FILE_INPUT new_fl_file_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_file_input(FILE_INPUT i);
-extern "C" int fl_file_input_get_down_box(FILE_INPUT i);
-extern "C" void fl_file_input_set_down_box(FILE_INPUT i, int t);
-extern "C" unsigned int fl_file_input_get_errorcolor(FILE_INPUT i);
-extern "C" void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t);
+extern "C" inline int fl_file_input_get_down_box(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_down_box(FILE_INPUT i, int t);
+extern "C" inline unsigned int fl_file_input_get_errorcolor(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_errorcolor(FILE_INPUT i, unsigned int t);
+
+
+extern "C" inline const char * fl_file_input_get_value(FILE_INPUT i);
+extern "C" inline void fl_file_input_set_value(FILE_INPUT i, const char * s, int len);
#endif
diff --git a/src/c_fl_float_input.h b/src/c_fl_float_input.h
index a49d0f7..5b97446 100644
--- a/src/c_fl_float_input.h
+++ b/src/c_fl_float_input.h
@@ -11,16 +11,16 @@ typedef void* FLOAT_INPUT;
-extern "C" void float_input_set_draw_hook(FLOAT_INPUT i, void * d);
-extern "C" void fl_float_input_draw(FLOAT_INPUT i);
-extern "C" void float_input_set_handle_hook(FLOAT_INPUT i, void * h);
-extern "C" int fl_float_input_handle(FLOAT_INPUT i, int e);
+extern "C" inline void float_input_set_draw_hook(FLOAT_INPUT i, void * d);
+extern "C" inline void fl_float_input_draw(FLOAT_INPUT i);
+extern "C" inline void float_input_set_handle_hook(FLOAT_INPUT i, void * h);
+extern "C" inline int fl_float_input_handle(FLOAT_INPUT i, int e);
-extern "C" FLOAT_INPUT new_fl_float_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_float_input(FLOAT_INPUT i);
+extern "C" inline FLOAT_INPUT new_fl_float_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_float_input(FLOAT_INPUT i);
#endif
diff --git a/src/c_fl_input.h b/src/c_fl_input.h
index 38bfc7e..23bee96 100644
--- a/src/c_fl_input.h
+++ b/src/c_fl_input.h
@@ -11,69 +11,69 @@ typedef void* INPUT;
-extern "C" void input_set_draw_hook(INPUT n, void * d);
-extern "C" void fl_input_draw(INPUT n);
-extern "C" void input_set_handle_hook(INPUT i, void * h);
-extern "C" int fl_input_handle(INPUT i, int e);
+extern "C" inline void input_set_draw_hook(INPUT n, void * d);
+extern "C" inline void fl_input_draw(INPUT n);
+extern "C" inline void input_set_handle_hook(INPUT i, void * h);
+extern "C" inline int fl_input_handle(INPUT i, int e);
-extern "C" INPUT new_fl_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_input(INPUT i);
+extern "C" inline INPUT new_fl_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_input(INPUT i);
-extern "C" int fl_input_copy(INPUT i);
-extern "C" int fl_input_cut(INPUT i);
-extern "C" int fl_input_cut2(INPUT i, int b);
-extern "C" int fl_input_cut3(INPUT i, int a, int b);
-extern "C" int fl_input_copy_cuts(INPUT i);
-extern "C" int fl_input_undo(INPUT i);
+extern "C" inline int fl_input_copy(INPUT i);
+extern "C" inline int fl_input_cut(INPUT i);
+extern "C" inline int fl_input_cut2(INPUT i, int b);
+extern "C" inline int fl_input_cut3(INPUT i, int a, int b);
+extern "C" inline int fl_input_copy_cuts(INPUT i);
+extern "C" inline int fl_input_undo(INPUT i);
-extern "C" int fl_input_get_readonly(INPUT i);
-extern "C" void fl_input_set_readonly(INPUT i, int t);
-extern "C" int fl_input_get_tab_nav(INPUT i);
-extern "C" void fl_input_set_tab_nav(INPUT i, int t);
-extern "C" int fl_input_get_wrap(INPUT i);
-extern "C" void fl_input_set_wrap(INPUT i, int t);
+extern "C" inline int fl_input_get_readonly(INPUT i);
+extern "C" inline void fl_input_set_readonly(INPUT i, int t);
+extern "C" inline int fl_input_get_tab_nav(INPUT i);
+extern "C" inline void fl_input_set_tab_nav(INPUT i, int t);
+extern "C" inline int fl_input_get_wrap(INPUT i);
+extern "C" inline void fl_input_set_wrap(INPUT i, int t);
-extern "C" int fl_input_get_input_type(INPUT i);
-extern "C" void fl_input_set_input_type(INPUT i, int t);
-extern "C" unsigned long fl_input_get_shortcut(INPUT i);
-extern "C" void fl_input_set_shortcut(INPUT i, unsigned long t);
-extern "C" int fl_input_get_mark(INPUT i);
-extern "C" int fl_input_set_mark(INPUT i, int t);
-extern "C" int fl_input_get_position(INPUT i);
-extern "C" int fl_input_set_position(INPUT i, int t);
+extern "C" inline int fl_input_get_input_type(INPUT i);
+extern "C" inline void fl_input_set_input_type(INPUT i, int t);
+extern "C" inline unsigned long fl_input_get_shortcut(INPUT i);
+extern "C" inline void fl_input_set_shortcut(INPUT i, unsigned long t);
+extern "C" inline int fl_input_get_mark(INPUT i);
+extern "C" inline int fl_input_set_mark(INPUT i, int t);
+extern "C" inline int fl_input_get_position(INPUT i);
+extern "C" inline int fl_input_set_position(INPUT i, int t);
-extern "C" unsigned int fl_input_index(INPUT i, int p);
-extern "C" int fl_input_insert(INPUT i, const char * s, int l);
-extern "C" int fl_input_replace(INPUT i, int b, int e, const char * s, int l);
-extern "C" const char * fl_input_get_value(INPUT i);
-extern "C" void fl_input_set_value(INPUT i, char * s, int len);
+extern "C" inline unsigned int fl_input_index(INPUT i, int p);
+extern "C" inline int fl_input_insert(INPUT i, const char * s, int l);
+extern "C" inline int fl_input_replace(INPUT i, int b, int e, const char * s, int l);
+extern "C" inline const char * fl_input_get_value(INPUT i);
+extern "C" inline void fl_input_set_value(INPUT i, char * s, int len);
-extern "C" int fl_input_get_maximum_size(INPUT i);
-extern "C" void fl_input_set_maximum_size(INPUT i, int t);
-extern "C" int fl_input_get_size(INPUT i);
+extern "C" inline int fl_input_get_maximum_size(INPUT i);
+extern "C" inline void fl_input_set_maximum_size(INPUT i, int t);
+extern "C" inline int fl_input_get_size(INPUT i);
-extern "C" unsigned int fl_input_get_cursor_color(INPUT i);
-extern "C" void fl_input_set_cursor_color(INPUT i, unsigned int t);
-extern "C" unsigned int fl_input_get_textcolor(INPUT i);
-extern "C" void fl_input_set_textcolor(INPUT i, unsigned int t);
-extern "C" int fl_input_get_textfont(INPUT i);
-extern "C" void fl_input_set_textfont(INPUT i, int t);
-extern "C" int fl_input_get_textsize(INPUT i);
-extern "C" void fl_input_set_textsize(INPUT i, int t);
+extern "C" inline unsigned int fl_input_get_cursor_color(INPUT i);
+extern "C" inline void fl_input_set_cursor_color(INPUT i, unsigned int t);
+extern "C" inline unsigned int fl_input_get_textcolor(INPUT i);
+extern "C" inline void fl_input_set_textcolor(INPUT i, unsigned int t);
+extern "C" inline int fl_input_get_textfont(INPUT i);
+extern "C" inline void fl_input_set_textfont(INPUT i, int t);
+extern "C" inline int fl_input_get_textsize(INPUT i);
+extern "C" inline void fl_input_set_textsize(INPUT i, int t);
-extern "C" void fl_input_set_size(INPUT i, int w, int h);
+extern "C" inline void fl_input_set_size(INPUT i, int w, int h);
#endif
diff --git a/src/c_fl_int_input.h b/src/c_fl_int_input.h
index 907c041..bd5e408 100644
--- a/src/c_fl_int_input.h
+++ b/src/c_fl_int_input.h
@@ -11,16 +11,16 @@ typedef void* INT_INPUT;
-extern "C" void int_input_set_draw_hook(INT_INPUT i, void * d);
-extern "C" void fl_int_input_draw(INT_INPUT i);
-extern "C" void int_input_set_handle_hook(INT_INPUT i, void * h);
-extern "C" int fl_int_input_handle(INT_INPUT i, int e);
+extern "C" inline void int_input_set_draw_hook(INT_INPUT i, void * d);
+extern "C" inline void fl_int_input_draw(INT_INPUT i);
+extern "C" inline void int_input_set_handle_hook(INT_INPUT i, void * h);
+extern "C" inline int fl_int_input_handle(INT_INPUT i, int e);
-extern "C" INT_INPUT new_fl_int_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_int_input(INT_INPUT i);
+extern "C" inline INT_INPUT new_fl_int_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_int_input(INT_INPUT i);
#endif
diff --git a/src/c_fl_menu_window.h b/src/c_fl_menu_window.h
index 402f50a..cd7a0f4 100644
--- a/src/c_fl_menu_window.h
+++ b/src/c_fl_menu_window.h
@@ -11,29 +11,29 @@ typedef void* MENUWINDOW;
-extern "C" void menu_window_set_draw_hook(MENUWINDOW n, void * d);
-extern "C" void fl_menu_window_draw(MENUWINDOW n);
-extern "C" void menu_window_set_handle_hook(MENUWINDOW n, void * h);
-extern "C" int fl_menu_window_handle(MENUWINDOW n, int e);
+extern "C" inline void menu_window_set_draw_hook(MENUWINDOW n, void * d);
+extern "C" inline void fl_menu_window_draw(MENUWINDOW n);
+extern "C" inline void menu_window_set_handle_hook(MENUWINDOW n, void * h);
+extern "C" inline int fl_menu_window_handle(MENUWINDOW n, int e);
-extern "C" MENUWINDOW new_fl_menu_window(int x, int y, int w, int h, char* label);
-extern "C" MENUWINDOW new_fl_menu_window2(int w, int h);
-extern "C" void free_fl_menu_window(MENUWINDOW m);
+extern "C" inline MENUWINDOW new_fl_menu_window(int x, int y, int w, int h, char* label);
+extern "C" inline MENUWINDOW new_fl_menu_window2(int w, int h);
+extern "C" inline void free_fl_menu_window(MENUWINDOW m);
-extern "C" void fl_menu_window_show(MENUWINDOW m);
-extern "C" void fl_menu_window_hide(MENUWINDOW m);
-extern "C" void fl_menu_window_flush(MENUWINDOW m);
+extern "C" inline void fl_menu_window_show(MENUWINDOW m);
+extern "C" inline void fl_menu_window_hide(MENUWINDOW m);
+extern "C" inline void fl_menu_window_flush(MENUWINDOW m);
-extern "C" void fl_menu_window_set_overlay(MENUWINDOW m);
-extern "C" void fl_menu_window_clear_overlay(MENUWINDOW m);
-extern "C" unsigned int fl_menu_window_overlay(MENUWINDOW m);
+extern "C" inline void fl_menu_window_set_overlay(MENUWINDOW m);
+extern "C" inline void fl_menu_window_clear_overlay(MENUWINDOW m);
+extern "C" inline unsigned int fl_menu_window_overlay(MENUWINDOW m);
#endif
diff --git a/src/c_fl_multiline_input.h b/src/c_fl_multiline_input.h
index 177567b..eb19332 100644
--- a/src/c_fl_multiline_input.h
+++ b/src/c_fl_multiline_input.h
@@ -11,16 +11,16 @@ typedef void* MULTILINE_INPUT;
-extern "C" void multiline_input_set_draw_hook(MULTILINE_INPUT i, void * d);
-extern "C" void fl_multiline_input_draw(MULTILINE_INPUT i);
-extern "C" void multiline_input_set_handle_hook(MULTILINE_INPUT i, void * h);
-extern "C" int fl_multiline_input_handle(MULTILINE_INPUT i, int e);
+extern "C" inline void multiline_input_set_draw_hook(MULTILINE_INPUT i, void * d);
+extern "C" inline void fl_multiline_input_draw(MULTILINE_INPUT i);
+extern "C" inline void multiline_input_set_handle_hook(MULTILINE_INPUT i, void * h);
+extern "C" inline int fl_multiline_input_handle(MULTILINE_INPUT i, int e);
-extern "C" MULTILINE_INPUT new_fl_multiline_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_multiline_input(MULTILINE_INPUT i);
+extern "C" inline MULTILINE_INPUT new_fl_multiline_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_multiline_input(MULTILINE_INPUT i);
#endif
diff --git a/src/c_fl_multiline_output.h b/src/c_fl_multiline_output.h
index fae3da8..ebd5886 100644
--- a/src/c_fl_multiline_output.h
+++ b/src/c_fl_multiline_output.h
@@ -11,16 +11,16 @@ typedef void* MULTILINE_OUTPUT;
-extern "C" void multiline_output_set_draw_hook(MULTILINE_OUTPUT i, void * d);
-extern "C" void fl_multiline_output_draw(MULTILINE_OUTPUT i);
-extern "C" void multiline_output_set_handle_hook(MULTILINE_OUTPUT i, void * h);
-extern "C" int fl_multiline_output_handle(MULTILINE_OUTPUT i, int e);
+extern "C" inline void multiline_output_set_draw_hook(MULTILINE_OUTPUT i, void * d);
+extern "C" inline void fl_multiline_output_draw(MULTILINE_OUTPUT i);
+extern "C" inline void multiline_output_set_handle_hook(MULTILINE_OUTPUT i, void * h);
+extern "C" inline int fl_multiline_output_handle(MULTILINE_OUTPUT i, int e);
-extern "C" MULTILINE_OUTPUT new_fl_multiline_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_multiline_output(MULTILINE_OUTPUT i);
+extern "C" inline MULTILINE_OUTPUT new_fl_multiline_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_multiline_output(MULTILINE_OUTPUT i);
#endif
diff --git a/src/c_fl_output.h b/src/c_fl_output.h
index 002240c..d5959ec 100644
--- a/src/c_fl_output.h
+++ b/src/c_fl_output.h
@@ -7,21 +7,22 @@
// using just "OUTPUT" doesn't compile for some reason
+// some sort of name clash?
typedef void* OUTPUTT;
-extern "C" void output_set_draw_hook(OUTPUTT i, void * d);
-extern "C" void fl_output_draw(OUTPUTT i);
-extern "C" void output_set_handle_hook(OUTPUTT i, void * h);
-extern "C" int fl_output_handle(OUTPUTT i, int e);
+extern "C" inline void output_set_draw_hook(OUTPUTT i, void * d);
+extern "C" inline void fl_output_draw(OUTPUTT i);
+extern "C" inline void output_set_handle_hook(OUTPUTT i, void * h);
+extern "C" inline int fl_output_handle(OUTPUTT i, int e);
-extern "C" OUTPUTT new_fl_output(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_output(OUTPUTT i);
+extern "C" inline OUTPUTT new_fl_output(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_output(OUTPUTT i);
#endif
diff --git a/src/c_fl_round_clock.cpp b/src/c_fl_round_clock.cpp
index 56179fc..c37fd77 100644
--- a/src/c_fl_round_clock.cpp
+++ b/src/c_fl_round_clock.cpp
@@ -14,6 +14,7 @@ class My_Round_Clock : public Fl_Round_Clock {
friend void fl_round_clock_draw(ROUND_CLOCK c);
friend void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
friend int fl_round_clock_handle(ROUND_CLOCK c, int e);
+ friend void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h);
protected:
void draw();
void real_draw();
@@ -68,3 +69,10 @@ void free_fl_round_clock(ROUND_CLOCK c) {
}
+
+
+void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h) {
+ reinterpret_cast<My_Round_Clock*>(c)->Fl_Round_Clock::draw(x,y,w,h);
+}
+
+
diff --git a/src/c_fl_round_clock.h b/src/c_fl_round_clock.h
index c0e6585..06ec30c 100644
--- a/src/c_fl_round_clock.h
+++ b/src/c_fl_round_clock.h
@@ -11,16 +11,21 @@ typedef void* ROUND_CLOCK;
-extern "C" void round_clock_set_draw_hook(ROUND_CLOCK c, void * d);
-extern "C" void fl_round_clock_draw(ROUND_CLOCK c);
-extern "C" void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
-extern "C" int fl_round_clock_handle(ROUND_CLOCK c, int e);
+extern "C" inline void round_clock_set_draw_hook(ROUND_CLOCK c, void * d);
+extern "C" inline void fl_round_clock_draw(ROUND_CLOCK c);
+extern "C" inline void round_clock_set_handle_hook(ROUND_CLOCK c, void * h);
+extern "C" inline int fl_round_clock_handle(ROUND_CLOCK c, int e);
-extern "C" ROUND_CLOCK new_fl_round_clock(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_round_clock(ROUND_CLOCK c);
+extern "C" inline ROUND_CLOCK new_fl_round_clock(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_round_clock(ROUND_CLOCK c);
+
+
+
+
+extern "C" inline void fl_round_clock_draw2(ROUND_CLOCK c, int x, int y, int w, int h);
#endif
diff --git a/src/c_fl_secret_input.h b/src/c_fl_secret_input.h
index 604626d..4f92349 100644
--- a/src/c_fl_secret_input.h
+++ b/src/c_fl_secret_input.h
@@ -11,16 +11,16 @@ typedef void* SECRET_INPUT;
-extern "C" void secret_input_set_draw_hook(SECRET_INPUT i, void * d);
-extern "C" void fl_secret_input_draw(SECRET_INPUT i);
-extern "C" void secret_input_set_handle_hook(SECRET_INPUT i, void * h);
-extern "C" int fl_secret_input_handle(SECRET_INPUT i, int e);
+extern "C" inline void secret_input_set_draw_hook(SECRET_INPUT i, void * d);
+extern "C" inline void fl_secret_input_draw(SECRET_INPUT i);
+extern "C" inline void secret_input_set_handle_hook(SECRET_INPUT i, void * h);
+extern "C" inline int fl_secret_input_handle(SECRET_INPUT i, int e);
-extern "C" SECRET_INPUT new_fl_secret_input(int x, int y, int w, int h, char* label);
-extern "C" void free_fl_secret_input(SECRET_INPUT i);
+extern "C" inline SECRET_INPUT new_fl_secret_input(int x, int y, int w, int h, char* label);
+extern "C" inline void free_fl_secret_input(SECRET_INPUT i);
#endif
diff --git a/src/c_fl_single_window.h b/src/c_fl_single_window.h
index 02a6619..31ca7d3 100644
--- a/src/c_fl_single_window.h
+++ b/src/c_fl_single_window.h
@@ -11,23 +11,23 @@ typedef void* SINGLEWINDOW;
-extern "C" void single_window_set_draw_hook(SINGLEWINDOW n, void * d);
-extern "C" void fl_single_window_draw(SINGLEWINDOW n);
-extern "C" void single_window_set_handle_hook(SINGLEWINDOW n, void * h);
-extern "C" int fl_single_window_handle(SINGLEWINDOW n, int e);
+extern "C" inline void single_window_set_draw_hook(SINGLEWINDOW n, void * d);
+extern "C" inline void fl_single_window_draw(SINGLEWINDOW n);
+extern "C" inline void single_window_set_handle_hook(SINGLEWINDOW n, void * h);
+extern "C" inline int fl_single_window_handle(SINGLEWINDOW n, int e);
-extern "C" SINGLEWINDOW new_fl_single_window(int x, int y, int w, int h, char* label);
-extern "C" SINGLEWINDOW new_fl_single_window2(int x, int y);
-extern "C" void free_fl_single_window(SINGLEWINDOW w);
+extern "C" inline SINGLEWINDOW new_fl_single_window(int x, int y, int w, int h, char* label);
+extern "C" inline SINGLEWINDOW new_fl_single_window2(int x, int y);
+extern "C" inline void free_fl_single_window(SINGLEWINDOW w);
-extern "C" void fl_single_window_show(SINGLEWINDOW w);
-extern "C" void fl_single_window_flush(SINGLEWINDOW w);
+extern "C" inline void fl_single_window_show(SINGLEWINDOW w);
+extern "C" inline void fl_single_window_flush(SINGLEWINDOW w);
#endif
diff --git a/src/fltk-dialogs.adb b/src/fltk-dialogs.adb
index 46c14ad..7f0629c 100644
--- a/src/fltk-dialogs.adb
+++ b/src/fltk-dialogs.adb
@@ -17,34 +17,41 @@ package body FLTK.Dialogs is
procedure dialog_fl_alert
(M : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_alert, "dialog_fl_alert");
+ pragma Inline (dialog_fl_alert);
-- function dialog_fl_ask
-- (M : in Interfaces.C.char_array)
-- return Interfaces.C.int;
-- pragma Import (C, dialog_fl_ask, "dialog_fl_ask");
+ -- pragma Inline (dialog_fl_ask);
procedure dialog_fl_beep
(B : in Interfaces.C.int);
pragma Import (C, dialog_fl_beep, "dialog_fl_beep");
+ pragma Inline (dialog_fl_beep);
function dialog_fl_choice
(M, A, B, C : in Interfaces.C.char_array)
return Interfaces.C.int;
pragma Import (C, dialog_fl_choice, "dialog_fl_choice");
+ pragma Inline (dialog_fl_choice);
function dialog_fl_input
(M, D : in Interfaces.C.char_array)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_input, "dialog_fl_input");
+ pragma Inline (dialog_fl_input);
procedure dialog_fl_message
(M : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message, "dialog_fl_message");
+ pragma Inline (dialog_fl_message);
function dialog_fl_password
(M, D : in Interfaces.C.char_array)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_password, "dialog_fl_password");
+ pragma Inline (dialog_fl_password);
@@ -55,18 +62,29 @@ package body FLTK.Dialogs is
M : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, dialog_fl_color_chooser, "dialog_fl_color_chooser");
+ pragma Inline (dialog_fl_color_chooser);
+
+ function dialog_fl_color_chooser2
+ (N : in Interfaces.C.char_array;
+ R, G, B : in out Interfaces.C.unsigned_char;
+ M : in Interfaces.C.int)
+ return Interfaces.C.int;
+ pragma Import (C, dialog_fl_color_chooser2, "dialog_fl_color_chooser2");
+ pragma Inline (dialog_fl_color_chooser2);
function dialog_fl_dir_chooser
(M, D : in Interfaces.C.char_array;
R : in Interfaces.C.int)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_dir_chooser, "dialog_fl_dir_chooser");
+ pragma Inline (dialog_fl_dir_chooser);
function dialog_fl_file_chooser
(M, P, D : in Interfaces.C.char_array;
R : in Interfaces.C.int)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, dialog_fl_file_chooser, "dialog_fl_file_chooser");
+ pragma Inline (dialog_fl_file_chooser);
@@ -74,26 +92,32 @@ package body FLTK.Dialogs is
function dialog_fl_get_message_hotspot
return Interfaces.C.int;
pragma Import (C, dialog_fl_get_message_hotspot, "dialog_fl_get_message_hotspot");
+ pragma Inline (dialog_fl_get_message_hotspot);
procedure dialog_fl_set_message_hotspot
(V : in Interfaces.C.int);
pragma Import (C, dialog_fl_set_message_hotspot, "dialog_fl_set_message_hotspot");
+ pragma Inline (dialog_fl_set_message_hotspot);
procedure dialog_fl_message_font
(F, S : in Interfaces.C.int);
pragma Import (C, dialog_fl_message_font, "dialog_fl_message_font");
+ pragma Inline (dialog_fl_message_font);
function dialog_fl_message_icon
return System.Address;
pragma Import (C, dialog_fl_message_icon, "dialog_fl_message_icon");
+ pragma Inline (dialog_fl_message_icon);
procedure dialog_fl_message_title
(T : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message_title, "dialog_fl_message_title");
+ pragma Inline (dialog_fl_message_title);
procedure dialog_fl_message_title_default
(T : in Interfaces.C.char_array);
pragma Import (C, dialog_fl_message_title_default, "dialog_fl_message_title_default");
+ pragma Inline (dialog_fl_message_title_default);
@@ -143,11 +167,8 @@ package body FLTK.Dialogs is
(Interfaces.C.To_C (Message),
Interfaces.C.To_C (Default));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- string does not need dealloc
+ return Interfaces.C.Strings.Value (Result);
end Text_Input;
@@ -167,11 +188,8 @@ package body FLTK.Dialogs is
(Interfaces.C.To_C (Message),
Interfaces.C.To_C (Default));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- string does not need dealloc
+ return Interfaces.C.Strings.Value (Result);
end Password;
@@ -179,8 +197,9 @@ package body FLTK.Dialogs is
function Color_Chooser
(Title : in String;
- R, G, B : in out Long_Float;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode)
+ R, G, B : in out RGB_Float;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
return Boolean
is
C_R : Interfaces.C.double := Interfaces.C.double (R);
@@ -190,9 +209,30 @@ package body FLTK.Dialogs is
Result : Boolean := dialog_fl_color_chooser
(Interfaces.C.To_C (Title), C_R, C_G, C_B, M) /= 0;
begin
- R := Long_Float (C_R);
- G := Long_Float (C_G);
- B := Long_Float (C_B);
+ R := RGB_Float (C_R);
+ G := RGB_Float (C_G);
+ B := RGB_Float (C_B);
+ return Result;
+ end Color_Chooser;
+
+
+ function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Int;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean
+ is
+ C_R : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (R);
+ C_G : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (G);
+ C_B : Interfaces.C.unsigned_char := Interfaces.C.unsigned_char (B);
+ M : Interfaces.C.int := FLTK.Widgets.Groups.Color_Choosers.Color_Mode'Pos (Mode);
+ Result : Boolean := dialog_fl_color_chooser2
+ (Interfaces.C.To_C (Title), C_R, C_G, C_B, M) /= 0;
+ begin
+ R := RGB_Int (C_R);
+ G := RGB_Int (C_G);
+ B := RGB_Int (C_B);
return Result;
end Color_Chooser;
@@ -207,11 +247,8 @@ package body FLTK.Dialogs is
Interfaces.C.To_C (Default),
Boolean'Pos (Relative));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- I'm... fairly sure the string does not need dealloc?
+ return Interfaces.C.Strings.Value (Result);
end Dir_Chooser;
@@ -226,11 +263,8 @@ package body FLTK.Dialogs is
Interfaces.C.To_C (Default),
Boolean'Pos (Relative));
begin
- if Result = Interfaces.C.Strings.Null_Ptr then
- return "";
- else
- return Interfaces.C.Strings.Value (Result);
- end if;
+ -- I'm... fairly sure the string does not need dealloc?
+ return Interfaces.C.Strings.Value (Result);
end File_Chooser;
diff --git a/src/fltk-dialogs.ads b/src/fltk-dialogs.ads
index 03d1416..96a6bcf 100644
--- a/src/fltk-dialogs.ads
+++ b/src/fltk-dialogs.ads
@@ -15,6 +15,10 @@ package FLTK.Dialogs is
type Choice is (First, Second, Third);
+ type RGB_Float is new Long_Float range 0.0 .. 1.0;
+
+ type RGB_Int is mod 256;
+
@@ -50,8 +54,16 @@ package FLTK.Dialogs is
function Color_Chooser
(Title : in String;
- R, G, B : in out Long_Float;
- Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode)
+ R, G, B : in out RGB_Float;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
+ return Boolean;
+
+ function Color_Chooser
+ (Title : in String;
+ R, G, B : in out RGB_Int;
+ Mode : in FLTK.Widgets.Groups.Color_Choosers.Color_Mode :=
+ FLTK.Widgets.Groups.Color_Choosers.RGB)
return Boolean;
function Dir_Chooser
@@ -93,5 +105,29 @@ private
Icon_Box : aliased FLTK.Widgets.Boxes.Box;
+
+
+ pragma Inline (Alert);
+ -- pragma Inline (Ask);
+ pragma Inline (Beep);
+ pragma Inline (Three_Way_Choice);
+ pragma Inline (Text_Input);
+ pragma Inline (Message_Box);
+ pragma Inline (Password);
+
+
+ pragma Inline (Color_Chooser);
+ pragma Inline (Dir_Chooser);
+ pragma Inline (File_Chooser);
+
+
+ pragma Inline (Get_Hotspot);
+ pragma Inline (Set_Hotspot);
+ pragma Inline (Set_Message_Font);
+ pragma Inline (Get_Message_Icon);
+ pragma Inline (Set_Message_Title);
+ pragma Inline (Set_Message_Title_Default);
+
+
end FLTK.Dialogs;
diff --git a/src/fltk-widgets-clocks-updated-round.adb b/src/fltk-widgets-clocks-updated-round.adb
index c87cb7b..f519fe0 100644
--- a/src/fltk-widgets-clocks-updated-round.adb
+++ b/src/fltk-widgets-clocks-updated-round.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks.Updated.Round is
procedure round_clock_set_draw_hook
(W, D : in System.Address);
pragma Import (C, round_clock_set_draw_hook, "round_clock_set_draw_hook");
+ pragma Inline (round_clock_set_draw_hook);
procedure round_clock_set_handle_hook
(W, H : in System.Address);
pragma Import (C, round_clock_set_handle_hook, "round_clock_set_handle_hook");
+ pragma Inline (round_clock_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Clocks.Updated.Round is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_round_clock, "new_fl_round_clock");
+ pragma Inline (new_fl_round_clock);
procedure free_fl_round_clock
(F : in System.Address);
pragma Import (C, free_fl_round_clock, "free_fl_round_clock");
+ pragma Inline (free_fl_round_clock);
@@ -40,12 +44,20 @@ package body FLTK.Widgets.Clocks.Updated.Round is
procedure fl_round_clock_draw
(W : in System.Address);
pragma Import (C, fl_round_clock_draw, "fl_round_clock_draw");
+ pragma Inline (fl_round_clock_draw);
+
+ procedure fl_round_clock_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_round_clock_draw2, "fl_round_clock_draw2");
+ pragma Inline (fl_round_clock_draw2);
function fl_round_clock_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_round_clock_handle, "fl_round_clock_handle");
+ pragma Inline (fl_round_clock_handle);
@@ -99,6 +111,19 @@ package body FLTK.Widgets.Clocks.Updated.Round is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_round_clock_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Round_Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks-updated-round.ads b/src/fltk-widgets-clocks-updated-round.ads
index 17f05b3..4b6681c 100644
--- a/src/fltk-widgets-clocks-updated-round.ads
+++ b/src/fltk-widgets-clocks-updated-round.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks.Updated.Round is
type Round_Clock is new Updated_Clock with private;
+ type Round_Clock_Reference (Data : not null access Round_Clock'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -23,6 +26,10 @@ package FLTK.Widgets.Clocks.Updated.Round is
procedure Draw
(This : in out Round_Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Round_Clock;
Event : in Event_Kind)
@@ -38,5 +45,11 @@ private
(This : in out Round_Clock);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks.Updated.Round;
diff --git a/src/fltk-widgets-clocks-updated.adb b/src/fltk-widgets-clocks-updated.adb
index d55521e..f2f450b 100644
--- a/src/fltk-widgets-clocks-updated.adb
+++ b/src/fltk-widgets-clocks-updated.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks.Updated is
procedure clock_set_draw_hook
(W, D : in System.Address);
pragma Import (C, clock_set_draw_hook, "clock_set_draw_hook");
+ pragma Inline (clock_set_draw_hook);
procedure clock_set_handle_hook
(W, H : in System.Address);
pragma Import (C, clock_set_handle_hook, "clock_set_handle_hook");
+ pragma Inline (clock_set_handle_hook);
@@ -29,10 +31,20 @@ package body FLTK.Widgets.Clocks.Updated is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_clock, "new_fl_clock");
+ pragma Inline (new_fl_clock);
+
+ function new_fl_clock2
+ (K : in Interfaces.C.unsigned_char;
+ X, Y, W, H : in Interfaces.C.int;
+ Text : in Interfaces.C.char_array)
+ return System.Address;
+ pragma Import (C, new_fl_clock2, "new_fl_clock2");
+ pragma Inline (new_fl_clock2);
procedure free_fl_clock
(F : in System.Address);
pragma Import (C, free_fl_clock, "free_fl_clock");
+ pragma Inline (free_fl_clock);
@@ -40,12 +52,20 @@ package body FLTK.Widgets.Clocks.Updated is
procedure fl_clock_draw
(W : in System.Address);
pragma Import (C, fl_clock_draw, "fl_clock_draw");
+ pragma Inline (fl_clock_draw);
+
+ procedure fl_clock_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_clock_draw2, "fl_clock_draw2");
+ pragma Inline (fl_clock_draw2);
function fl_clock_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_clock_handle, "fl_clock_handle");
+ pragma Inline (fl_clock_handle);
@@ -87,6 +107,29 @@ package body FLTK.Widgets.Clocks.Updated is
end return;
end Create;
+
+ function Create
+ (Kind : in Box_Kind;
+ X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock is
+ begin
+ return This : Updated_Clock do
+ This.Void_Ptr := new_fl_clock2
+ (Box_Kind'Pos (Kind),
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H),
+ Interfaces.C.To_C (Text));
+ fl_widget_set_user_data
+ (This.Void_Ptr,
+ Widget_Convert.To_Address (This'Unchecked_Access));
+ clock_set_draw_hook (This.Void_Ptr, Draw_Hook'Address);
+ clock_set_handle_hook (This.Void_Ptr, Handle_Hook'Address);
+ end return;
+ end Create;
+
end Forge;
@@ -99,6 +142,19 @@ package body FLTK.Widgets.Clocks.Updated is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_clock_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Updated_Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks-updated.ads b/src/fltk-widgets-clocks-updated.ads
index 35bff2c..9830d13 100644
--- a/src/fltk-widgets-clocks-updated.ads
+++ b/src/fltk-widgets-clocks-updated.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks.Updated is
type Updated_Clock is new Clock with private;
+ type Updated_Clock_Reference (Data : not null access Updated_Clock'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -15,6 +18,12 @@ package FLTK.Widgets.Clocks.Updated is
Text : in String)
return Updated_Clock;
+ function Create
+ (Kind : in Box_Kind;
+ X, Y, W, H : in Integer;
+ Text : in String)
+ return Updated_Clock;
+
end Forge;
@@ -23,6 +32,10 @@ package FLTK.Widgets.Clocks.Updated is
procedure Draw
(This : in out Updated_Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Updated_Clock;
Event : in Event_Kind)
@@ -38,5 +51,11 @@ private
(This : in out Updated_Clock);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks.Updated;
diff --git a/src/fltk-widgets-clocks.adb b/src/fltk-widgets-clocks.adb
index 5fd3ec2..4eeee3c 100644
--- a/src/fltk-widgets-clocks.adb
+++ b/src/fltk-widgets-clocks.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Clocks is
procedure clock_output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, clock_output_set_draw_hook, "clock_output_set_draw_hook");
+ pragma Inline (clock_output_set_draw_hook);
procedure clock_output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, clock_output_set_handle_hook, "clock_output_set_handle_hook");
+ pragma Inline (clock_output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Clocks is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_clock_output, "new_fl_clock_output");
+ pragma Inline (new_fl_clock_output);
procedure free_fl_clock_output
(F : in System.Address);
pragma Import (C, free_fl_clock_output, "free_fl_clock_output");
+ pragma Inline (free_fl_clock_output);
@@ -41,16 +45,19 @@ package body FLTK.Widgets.Clocks is
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_hour, "fl_clock_output_get_hour");
+ pragma Inline (fl_clock_output_get_hour);
function fl_clock_output_get_minute
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_minute, "fl_clock_output_get_minute");
+ pragma Inline (fl_clock_output_get_minute);
function fl_clock_output_get_second
(C : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_get_second, "fl_clock_output_get_second");
+ pragma Inline (fl_clock_output_get_second);
@@ -59,16 +66,19 @@ package body FLTK.Widgets.Clocks is
(C : in System.Address)
return Interfaces.C.unsigned_long;
pragma Import (C, fl_clock_output_get_value, "fl_clock_output_get_value");
+ pragma Inline (fl_clock_output_get_value);
procedure fl_clock_output_set_value
(C : in System.Address;
V : in Interfaces.C.unsigned_long);
pragma Import (C, fl_clock_output_set_value, "fl_clock_output_set_value");
+ pragma Inline (fl_clock_output_set_value);
procedure fl_clock_output_set_value2
(C : in System.Address;
H, M, S : in Interfaces.C.int);
pragma Import (C, fl_clock_output_set_value2, "fl_clock_output_set_value2");
+ pragma Inline (fl_clock_output_set_value2);
@@ -76,12 +86,20 @@ package body FLTK.Widgets.Clocks is
procedure fl_clock_output_draw
(W : in System.Address);
pragma Import (C, fl_clock_output_draw, "fl_clock_output_draw");
+ pragma Inline (fl_clock_output_draw);
+
+ procedure fl_clock_output_draw2
+ (C : in System.Address;
+ X, Y, W, H : in Interfaces.C.int);
+ pragma Import (C, fl_clock_output_draw2, "fl_clock_output_draw2");
+ pragma Inline (fl_clock_output_draw2);
function fl_clock_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_clock_output_handle, "fl_clock_output_handle");
+ pragma Inline (fl_clock_output_handle);
@@ -193,6 +211,19 @@ package body FLTK.Widgets.Clocks is
end Draw;
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer) is
+ begin
+ fl_clock_output_draw2
+ (This.Void_Ptr,
+ Interfaces.C.int (X),
+ Interfaces.C.int (Y),
+ Interfaces.C.int (W),
+ Interfaces.C.int (H));
+ end Draw;
+
+
function Handle
(This : in out Clock;
Event : in Event_Kind)
diff --git a/src/fltk-widgets-clocks.ads b/src/fltk-widgets-clocks.ads
index eb8acfc..d1cd192 100644
--- a/src/fltk-widgets-clocks.ads
+++ b/src/fltk-widgets-clocks.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Clocks is
type Clock is new Widget with private;
+ type Clock_Reference (Data : not null access Clock'Class) is limited null record
+ with Implicit_Dereference => Data;
+
subtype Hour is Integer range 0 .. 23;
subtype Minute is Integer range 0 .. 59;
subtype Second is Integer range 0 .. 60;
@@ -61,6 +64,10 @@ package FLTK.Widgets.Clocks is
procedure Draw
(This : in out Clock);
+ procedure Draw
+ (This : in out Clock;
+ X, Y, W, H : in Integer);
+
function Handle
(This : in out Clock;
Event : in Event_Kind)
@@ -76,5 +83,20 @@ private
(This : in out Clock);
+
+
+ pragma Inline (Get_Hour);
+ pragma Inline (Get_Minute);
+ pragma Inline (Get_Second);
+
+
+ pragma Inline (Get_Time);
+ pragma Inline (Set_Time);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Clocks;
diff --git a/src/fltk-widgets-groups-input_choices.adb b/src/fltk-widgets-groups-input_choices.adb
index 76bd3f9..603d480 100644
--- a/src/fltk-widgets-groups-input_choices.adb
+++ b/src/fltk-widgets-groups-input_choices.adb
@@ -198,7 +198,7 @@ package body FLTK.Widgets.Groups.Input_Choices is
function Input
(This : in out Input_Choice)
- return INP.Input_Cursor is
+ return INP.Input_Reference is
begin
return (Data => This.My_Input);
end Input;
diff --git a/src/fltk-widgets-groups-input_choices.ads b/src/fltk-widgets-groups-input_choices.ads
index 98fcded..0d4c8d4 100644
--- a/src/fltk-widgets-groups-input_choices.ads
+++ b/src/fltk-widgets-groups-input_choices.ads
@@ -28,7 +28,7 @@ package FLTK.Widgets.Groups.Input_Choices is
function Input
(This : in out Input_Choice)
- return FLTK.Widgets.Inputs.Input_Cursor;
+ return FLTK.Widgets.Inputs.Input_Reference;
function Menu_Button
(This : in out Input_Choice)
diff --git a/src/fltk-widgets-groups-windows-double.adb b/src/fltk-widgets-groups-windows-double.adb
index ba4c8b8..9e87d56 100644
--- a/src/fltk-widgets-groups-windows-double.adb
+++ b/src/fltk-widgets-groups-windows-double.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure double_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, double_window_set_draw_hook, "double_window_set_draw_hook");
+ pragma Inline (double_window_set_draw_hook);
procedure double_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, double_window_set_handle_hook, "double_window_set_handle_hook");
+ pragma Inline (double_window_set_handle_hook);
@@ -29,15 +31,18 @@ package body FLTK.Widgets.Groups.Windows.Double is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_double_window, "new_fl_double_window");
+ pragma Inline (new_fl_double_window);
function new_fl_double_window2
(X, Y : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_double_window2, "new_fl_double_window2");
+ pragma Inline (new_fl_double_window2);
procedure free_fl_double_window
(W : in System.Address);
pragma Import (C, free_fl_double_window, "free_fl_double_window");
+ pragma Inline (free_fl_double_window);
@@ -45,14 +50,17 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure fl_double_window_show
(W : in System.Address);
pragma Import (C, fl_double_window_show, "fl_double_window_show");
+ pragma Inline (fl_double_window_show);
procedure fl_double_window_hide
(W : in System.Address);
pragma Import (C, fl_double_window_hide, "fl_double_window_hide");
+ pragma Inline (fl_double_window_hide);
procedure fl_double_window_flush
(W : in System.Address);
pragma Import (C, fl_double_window_flush, "fl_double_window_flush");
+ pragma Inline (fl_double_window_flush);
@@ -60,12 +68,14 @@ package body FLTK.Widgets.Groups.Windows.Double is
procedure fl_double_window_draw
(W : in System.Address);
pragma Import (C, fl_double_window_draw, "fl_double_window_draw");
+ pragma Inline (fl_double_window_draw);
function fl_double_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_double_window_handle, "fl_double_window_handle");
+ pragma Inline (fl_double_window_handle);
diff --git a/src/fltk-widgets-groups-windows-double.ads b/src/fltk-widgets-groups-windows-double.ads
index 8f566b7..216419d 100644
--- a/src/fltk-widgets-groups-windows-double.ads
+++ b/src/fltk-widgets-groups-windows-double.ads
@@ -5,6 +5,8 @@ package FLTK.Widgets.Groups.Windows.Double is
type Double_Window is new Window with private;
+ type Double_Window_Reference (Data : not null access Double_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
@@ -54,5 +56,16 @@ private
(This : in out Double_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Hide);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Double;
diff --git a/src/fltk-widgets-groups-windows-single-menu.adb b/src/fltk-widgets-groups-windows-single-menu.adb
index f48021f..85026f2 100644
--- a/src/fltk-widgets-groups-windows-single-menu.adb
+++ b/src/fltk-widgets-groups-windows-single-menu.adb
@@ -17,10 +17,12 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure menu_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, menu_window_set_draw_hook, "menu_window_set_draw_hook");
+ pragma Inline (menu_window_set_draw_hook);
procedure menu_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, menu_window_set_handle_hook, "menu_window_set_handle_hook");
+ pragma Inline (menu_window_set_handle_hook);
@@ -30,15 +32,18 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
Label : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_menu_window, "new_fl_menu_window");
+ pragma Inline (new_fl_menu_window);
function new_fl_menu_window2
(W, H : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_menu_window2, "new_fl_menu_window2");
+ pragma Inline (new_fl_menu_window2);
procedure free_fl_menu_window
(M : in System.Address);
pragma Import (C, free_fl_menu_window, "free_fl_menu_window");
+ pragma Inline (free_fl_menu_window);
@@ -46,14 +51,17 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_show
(M : in System.Address);
pragma Import (C, fl_menu_window_show, "fl_menu_window_show");
+ pragma Inline (fl_menu_window_show);
procedure fl_menu_window_hide
(M : in System.Address);
pragma Import (C, fl_menu_window_hide, "fl_menu_window_hide");
+ pragma Inline (fl_menu_window_hide);
procedure fl_menu_window_flush
(M : in System.Address);
pragma Import (C, fl_menu_window_flush, "fl_menu_window_flush");
+ pragma Inline (fl_menu_window_flush);
@@ -61,15 +69,18 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_set_overlay
(M : in System.Address);
pragma Import (C, fl_menu_window_set_overlay, "fl_menu_window_set_overlay");
+ pragma Inline (fl_menu_window_set_overlay);
procedure fl_menu_window_clear_overlay
(M : in System.Address);
pragma Import (C, fl_menu_window_clear_overlay, "fl_menu_window_clear_overlay");
+ pragma Inline (fl_menu_window_clear_overlay);
function fl_menu_window_overlay
(M : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_menu_window_overlay, "fl_menu_window_overlay");
+ pragma Inline (fl_menu_window_overlay);
@@ -77,12 +88,14 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
procedure fl_menu_window_draw
(W : in System.Address);
pragma Import (C, fl_menu_window_draw, "fl_menu_window_draw");
+ pragma Inline (fl_menu_window_draw);
function fl_menu_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_menu_window_handle, "fl_menu_window_handle");
+ pragma Inline (fl_menu_window_handle);
@@ -172,12 +185,12 @@ package body FLTK.Widgets.Groups.Windows.Single.Menu is
- function Get_Overlay
+ function Is_Overlay
(This : in Menu_Window)
return Boolean is
begin
return fl_menu_window_overlay (This.Void_Ptr) /= 0;
- end Get_Overlay;
+ end Is_Overlay;
procedure Set_Overlay
diff --git a/src/fltk-widgets-groups-windows-single-menu.ads b/src/fltk-widgets-groups-windows-single-menu.ads
index 1ec5c1c..0d82bf8 100644
--- a/src/fltk-widgets-groups-windows-single-menu.ads
+++ b/src/fltk-widgets-groups-windows-single-menu.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Groups.Windows.Single.Menu is
type Menu_Window is new Single_Window with private;
+ type Menu_Window_Reference (Data : not null access Menu_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -36,7 +39,7 @@ package FLTK.Widgets.Groups.Windows.Single.Menu is
- function Get_Overlay
+ function Is_Overlay
(This : in Menu_Window)
return Boolean;
@@ -65,5 +68,20 @@ private
(This : in out Menu_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Hide);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Is_Overlay);
+ pragma Inline (Set_Overlay);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Single.Menu;
diff --git a/src/fltk-widgets-groups-windows-single.adb b/src/fltk-widgets-groups-windows-single.adb
index 22ca4a5..0dec8f1 100644
--- a/src/fltk-widgets-groups-windows-single.adb
+++ b/src/fltk-widgets-groups-windows-single.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure single_window_set_draw_hook
(W, D : in System.Address);
pragma Import (C, single_window_set_draw_hook, "single_window_set_draw_hook");
+ pragma Inline (single_window_set_draw_hook);
procedure single_window_set_handle_hook
(W, H : in System.Address);
pragma Import (C, single_window_set_handle_hook, "single_window_set_handle_hook");
+ pragma Inline (single_window_set_handle_hook);
@@ -29,15 +31,18 @@ package body FLTK.Widgets.Groups.Windows.Single is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_single_window, "new_fl_single_window");
+ pragma Inline (new_fl_single_window);
function new_fl_single_window2
(W, H : in Interfaces.C.int)
return System.Address;
pragma Import (C, new_fl_single_window2, "new_fl_single_window2");
+ pragma Inline (new_fl_single_window2);
procedure free_fl_single_window
(S : in System.Address);
pragma Import (C, free_fl_single_window, "free_fl_single_window");
+ pragma Inline (free_fl_single_window);
@@ -45,10 +50,12 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure fl_single_window_show
(S : in System.Address);
pragma Import (C, fl_single_window_show, "fl_single_window_show");
+ pragma Inline (fl_single_window_show);
procedure fl_single_window_flush
(S : in System.Address);
pragma Import (C, fl_single_window_flush, "fl_single_window_flush");
+ pragma Inline (fl_single_window_flush);
@@ -56,12 +63,14 @@ package body FLTK.Widgets.Groups.Windows.Single is
procedure fl_single_window_draw
(W : in System.Address);
pragma Import (C, fl_single_window_draw, "fl_single_window_draw");
+ pragma Inline (fl_single_window_draw);
function fl_single_window_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_single_window_handle, "fl_single_window_handle");
+ pragma Inline (fl_single_window_handle);
diff --git a/src/fltk-widgets-groups-windows-single.ads b/src/fltk-widgets-groups-windows-single.ads
index e33597c..67acf9b 100644
--- a/src/fltk-widgets-groups-windows-single.ads
+++ b/src/fltk-widgets-groups-windows-single.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Groups.Windows.Single is
type Single_Window is new Window with private;
+ type Single_Window_Reference (Data : not null access Single_Window'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -51,5 +54,15 @@ private
(This : in out Single_Window);
+
+
+ pragma Inline (Show);
+ pragma Inline (Flush);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Groups.Windows.Single;
diff --git a/src/fltk-widgets-inputs-file.adb b/src/fltk-widgets-inputs-file.adb
index cdbeca5..222b847 100644
--- a/src/fltk-widgets-inputs-file.adb
+++ b/src/fltk-widgets-inputs-file.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.File is
procedure file_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, file_input_set_draw_hook, "file_input_set_draw_hook");
+ pragma Inline (file_input_set_draw_hook);
procedure file_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, file_input_set_handle_hook, "file_input_set_handle_hook");
+ pragma Inline (file_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.File is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_file_input, "new_fl_file_input");
+ pragma Inline (new_fl_file_input);
procedure free_fl_file_input
(F : in System.Address);
pragma Import (C, free_fl_file_input, "free_fl_file_input");
+ pragma Inline (free_fl_file_input);
@@ -41,21 +45,41 @@ package body FLTK.Widgets.Inputs.File is
(F : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_file_input_get_down_box, "fl_file_input_get_down_box");
+ pragma Inline (fl_file_input_get_down_box);
procedure fl_file_input_set_down_box
(F : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_file_input_set_down_box, "fl_file_input_set_down_box");
+ pragma Inline (fl_file_input_set_down_box);
function fl_file_input_get_errorcolor
(F : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_file_input_get_errorcolor, "fl_file_input_get_errorcolor");
+ pragma Inline (fl_file_input_get_errorcolor);
procedure fl_file_input_set_errorcolor
(F : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_file_input_set_errorcolor, "fl_file_input_set_errorcolor");
+ pragma Inline (fl_file_input_set_errorcolor);
+
+
+
+
+ function fl_file_input_get_value
+ (F : in System.Address)
+ return Interfaces.C.Strings.chars_ptr;
+ pragma Import (C, fl_file_input_get_value, "fl_file_input_get_value");
+ pragma Inline (fl_file_input_get_value);
+
+ procedure fl_file_input_set_value
+ (I : in System.Address;
+ T : in Interfaces.C.char_array;
+ L : in Interfaces.C.int);
+ pragma Import (C, fl_file_input_set_value, "fl_file_input_set_value");
+ pragma Inline (fl_file_input_set_value);
@@ -63,12 +87,14 @@ package body FLTK.Widgets.Inputs.File is
procedure fl_file_input_draw
(W : in System.Address);
pragma Import (C, fl_file_input_draw, "fl_file_input_draw");
+ pragma Inline (fl_file_input_draw);
function fl_file_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_file_input_handle, "fl_file_input_handle");
+ pragma Inline (fl_file_input_handle);
@@ -149,6 +175,25 @@ package body FLTK.Widgets.Inputs.File is
+ function Get_Value
+ (This : in Input)
+ return String is
+ begin
+ -- pointer to internal buffer only, so no Free required
+ return Interfaces.C.Strings.Value (fl_file_input_get_value (This.Void_Ptr));
+ end Get_Value;
+
+
+ procedure Set_Value
+ (This : in out Input;
+ To : in String) is
+ begin
+ fl_file_input_set_value (This.Void_Ptr, Interfaces.C.To_C (To), To'Length);
+ end Set_Value;
+
+
+
+
procedure Draw
(This : in out File_Input) is
begin
diff --git a/src/fltk-widgets-inputs-file.ads b/src/fltk-widgets-inputs-file.ads
index 3ef3561..3d1142a 100644
--- a/src/fltk-widgets-inputs-file.ads
+++ b/src/fltk-widgets-inputs-file.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.File is
type File_Input is new Input with private;
+ type File_Input_Reference (Data : not null access File_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -39,6 +42,17 @@ package FLTK.Widgets.Inputs.File is
+ function Get_Value
+ (This : in Input)
+ return String;
+
+ procedure Set_Value
+ (This : in out Input;
+ To : in String);
+
+
+
+
procedure Draw
(This : in out File_Input);
@@ -57,5 +71,21 @@ private
(This : in out File_Input);
+
+
+ pragma Inline (Get_Down_Box);
+ pragma Inline (Set_Down_Box);
+ pragma Inline (Get_Error_Color);
+ pragma Inline (Set_Error_Color);
+
+
+ pragma Inline (Get_Value);
+ pragma Inline (Set_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.File;
diff --git a/src/fltk-widgets-inputs-float.adb b/src/fltk-widgets-inputs-float.adb
index 249b99b..3b1b5b3 100644
--- a/src/fltk-widgets-inputs-float.adb
+++ b/src/fltk-widgets-inputs-float.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Float is
procedure float_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, float_input_set_draw_hook, "float_input_set_draw_hook");
+ pragma Inline (float_input_set_draw_hook);
procedure float_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, float_input_set_handle_hook, "float_input_set_handle_hook");
+ pragma Inline (float_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Float is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_float_input, "new_fl_float_input");
+ pragma Inline (new_fl_float_input);
procedure free_fl_float_input
(F : in System.Address);
pragma Import (C, free_fl_float_input, "free_fl_float_input");
+ pragma Inline (free_fl_float_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Float is
procedure fl_float_input_draw
(W : in System.Address);
pragma Import (C, fl_float_input_draw, "fl_float_input_draw");
+ pragma Inline (fl_float_input_draw);
function fl_float_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_float_input_handle, "fl_float_input_handle");
+ pragma Inline (fl_float_input_handle);
diff --git a/src/fltk-widgets-inputs-float.ads b/src/fltk-widgets-inputs-float.ads
index 1df1a98..39a58b3 100644
--- a/src/fltk-widgets-inputs-float.ads
+++ b/src/fltk-widgets-inputs-float.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Float is
type Float_Input is new Input with private;
+ type Float_Input_Reference (Data : not null access Float_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -45,5 +48,14 @@ private
(This : in out Float_Input);
+
+
+ pragma Inline (Get_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Float;
diff --git a/src/fltk-widgets-inputs-integer.adb b/src/fltk-widgets-inputs-integer.adb
index b82545a..2f41e73 100644
--- a/src/fltk-widgets-inputs-integer.adb
+++ b/src/fltk-widgets-inputs-integer.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Integer is
procedure int_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, int_input_set_draw_hook, "int_input_set_draw_hook");
+ pragma Inline (int_input_set_draw_hook);
procedure int_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, int_input_set_handle_hook, "int_input_set_handle_hook");
+ pragma Inline (int_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Integer is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_int_input, "new_fl_int_input");
+ pragma Inline (new_fl_int_input);
procedure free_fl_int_input
(F : in System.Address);
pragma Import (C, free_fl_int_input, "free_fl_int_input");
+ pragma Inline (free_fl_int_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Integer is
procedure fl_int_input_draw
(W : in System.Address);
pragma Import (C, fl_int_input_draw, "fl_int_input_draw");
+ pragma Inline (fl_int_input_draw);
function fl_int_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_int_input_handle, "fl_int_input_handle");
+ pragma Inline (fl_int_input_handle);
diff --git a/src/fltk-widgets-inputs-integer.ads b/src/fltk-widgets-inputs-integer.ads
index bde356c..f5e74f6 100644
--- a/src/fltk-widgets-inputs-integer.ads
+++ b/src/fltk-widgets-inputs-integer.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Integer is
type Integer_Input is new Input with private;
+ type Integer_Input_Reference (Data : not null access Integer_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -45,5 +48,14 @@ private
(This : in out Integer_Input);
+
+
+ pragma Inline (Get_Value);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Integer;
diff --git a/src/fltk-widgets-inputs-multiline.adb b/src/fltk-widgets-inputs-multiline.adb
index 43a51fe..f65cbc4 100644
--- a/src/fltk-widgets-inputs-multiline.adb
+++ b/src/fltk-widgets-inputs-multiline.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Multiline is
procedure multiline_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, multiline_input_set_draw_hook, "multiline_input_set_draw_hook");
+ pragma Inline (multiline_input_set_draw_hook);
procedure multiline_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, multiline_input_set_handle_hook, "multiline_input_set_handle_hook");
+ pragma Inline (multiline_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Multiline is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_multiline_input, "new_fl_multiline_input");
+ pragma Inline (new_fl_multiline_input);
procedure free_fl_multiline_input
(F : in System.Address);
pragma Import (C, free_fl_multiline_input, "free_fl_multiline_input");
+ pragma Inline (free_fl_multiline_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Multiline is
procedure fl_multiline_input_draw
(W : in System.Address);
pragma Import (C, fl_multiline_input_draw, "fl_multiline_input_draw");
+ pragma Inline (fl_multiline_input_draw);
function fl_multiline_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_multiline_input_handle, "fl_multiline_input_handle");
+ pragma Inline (fl_multiline_input_handle);
diff --git a/src/fltk-widgets-inputs-multiline.ads b/src/fltk-widgets-inputs-multiline.ads
index 81cab45..7559759 100644
--- a/src/fltk-widgets-inputs-multiline.ads
+++ b/src/fltk-widgets-inputs-multiline.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Multiline is
type Multiline_Input is new Input with private;
+ type Multiline_Input_Reference (Data : not null access Multiline_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Multiline_Input);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Multiline;
diff --git a/src/fltk-widgets-inputs-outputs-multiline.adb b/src/fltk-widgets-inputs-outputs-multiline.adb
index bf67397..2d5b9cf 100644
--- a/src/fltk-widgets-inputs-outputs-multiline.adb
+++ b/src/fltk-widgets-inputs-outputs-multiline.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
procedure multiline_output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, multiline_output_set_draw_hook, "multiline_output_set_draw_hook");
+ pragma Inline (multiline_output_set_draw_hook);
procedure multiline_output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, multiline_output_set_handle_hook, "multiline_output_set_handle_hook");
+ pragma Inline (multiline_output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_multiline_output, "new_fl_multiline_output");
+ pragma Inline (new_fl_multiline_output);
procedure free_fl_multiline_output
(F : in System.Address);
pragma Import (C, free_fl_multiline_output, "free_fl_multiline_output");
+ pragma Inline (free_fl_multiline_output);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Outputs.Multiline is
procedure fl_multiline_output_draw
(W : in System.Address);
pragma Import (C, fl_multiline_output_draw, "fl_multiline_output_draw");
+ pragma Inline (fl_multiline_output_draw);
function fl_multiline_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_multiline_output_handle, "fl_multiline_output_handle");
+ pragma Inline (fl_multiline_output_handle);
diff --git a/src/fltk-widgets-inputs-outputs-multiline.ads b/src/fltk-widgets-inputs-outputs-multiline.ads
index 8a86280..05c13bf 100644
--- a/src/fltk-widgets-inputs-outputs-multiline.ads
+++ b/src/fltk-widgets-inputs-outputs-multiline.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Outputs.Multiline is
type Multiline_Output is new Output with private;
+ type Multiline_Output_Reference (Data : not null access Multiline_Output'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Multiline_Output);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Outputs.Multiline;
diff --git a/src/fltk-widgets-inputs-outputs.adb b/src/fltk-widgets-inputs-outputs.adb
index 00c7d0c..275c9be 100644
--- a/src/fltk-widgets-inputs-outputs.adb
+++ b/src/fltk-widgets-inputs-outputs.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Outputs is
procedure output_set_draw_hook
(W, D : in System.Address);
pragma Import (C, output_set_draw_hook, "output_set_draw_hook");
+ pragma Inline (output_set_draw_hook);
procedure output_set_handle_hook
(W, H : in System.Address);
pragma Import (C, output_set_handle_hook, "output_set_handle_hook");
+ pragma Inline (output_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Outputs is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_output, "new_fl_output");
+ pragma Inline (new_fl_output);
procedure free_fl_output
(F : in System.Address);
pragma Import (C, free_fl_output, "free_fl_output");
+ pragma Inline (free_fl_output);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Outputs is
procedure fl_output_draw
(W : in System.Address);
pragma Import (C, fl_output_draw, "fl_output_draw");
+ pragma Inline (fl_output_draw);
function fl_output_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_output_handle, "fl_output_handle");
+ pragma Inline (fl_output_handle);
diff --git a/src/fltk-widgets-inputs-outputs.ads b/src/fltk-widgets-inputs-outputs.ads
index f686414..063b7bd 100644
--- a/src/fltk-widgets-inputs-outputs.ads
+++ b/src/fltk-widgets-inputs-outputs.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Outputs is
type Output is new Input with private;
+ type Output_Reference (Data : not null access Output'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Output);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Outputs;
diff --git a/src/fltk-widgets-inputs-secret.adb b/src/fltk-widgets-inputs-secret.adb
index 064c364..8fabd50 100644
--- a/src/fltk-widgets-inputs-secret.adb
+++ b/src/fltk-widgets-inputs-secret.adb
@@ -16,10 +16,12 @@ package body FLTK.Widgets.Inputs.Secret is
procedure secret_input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, secret_input_set_draw_hook, "secret_input_set_draw_hook");
+ pragma Inline (secret_input_set_draw_hook);
procedure secret_input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, secret_input_set_handle_hook, "secret_input_set_handle_hook");
+ pragma Inline (secret_input_set_handle_hook);
@@ -29,10 +31,12 @@ package body FLTK.Widgets.Inputs.Secret is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_secret_input, "new_fl_secret_input");
+ pragma Inline (new_fl_secret_input);
procedure free_fl_secret_input
(F : in System.Address);
pragma Import (C, free_fl_secret_input, "free_fl_secret_input");
+ pragma Inline (free_fl_secret_input);
@@ -40,12 +44,14 @@ package body FLTK.Widgets.Inputs.Secret is
procedure fl_secret_input_draw
(W : in System.Address);
pragma Import (C, fl_secret_input_draw, "fl_secret_input_draw");
+ pragma Inline (fl_secret_input_draw);
function fl_secret_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_secret_input_handle, "fl_secret_input_handle");
+ pragma Inline (fl_secret_input_handle);
diff --git a/src/fltk-widgets-inputs-secret.ads b/src/fltk-widgets-inputs-secret.ads
index 53ccaad..796b28f 100644
--- a/src/fltk-widgets-inputs-secret.ads
+++ b/src/fltk-widgets-inputs-secret.ads
@@ -5,6 +5,9 @@ package FLTK.Widgets.Inputs.Secret is
type Secret_Input is new Input with private;
+ type Secret_Input_Reference (Data : not null access Secret_Input'Class) is
+ limited null record with Implicit_Dereference => Data;
+
@@ -38,5 +41,11 @@ private
(This : in out Secret_Input);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets.Inputs.Secret;
diff --git a/src/fltk-widgets-inputs.adb b/src/fltk-widgets-inputs.adb
index 5196911..9064ee8 100644
--- a/src/fltk-widgets-inputs.adb
+++ b/src/fltk-widgets-inputs.adb
@@ -17,10 +17,12 @@ package body FLTK.Widgets.Inputs is
procedure input_set_draw_hook
(W, D : in System.Address);
pragma Import (C, input_set_draw_hook, "input_set_draw_hook");
+ pragma Inline (input_set_draw_hook);
procedure input_set_handle_hook
(W, H : in System.Address);
pragma Import (C, input_set_handle_hook, "input_set_handle_hook");
+ pragma Inline (input_set_handle_hook);
@@ -30,10 +32,12 @@ package body FLTK.Widgets.Inputs is
Text : in Interfaces.C.char_array)
return System.Address;
pragma Import (C, new_fl_input, "new_fl_input");
+ pragma Inline (new_fl_input);
procedure free_fl_input
(F : in System.Address);
pragma Import (C, free_fl_input, "free_fl_input");
+ pragma Inline (free_fl_input);
@@ -42,33 +46,39 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_copy, "fl_input_copy");
+ pragma Inline (fl_input_copy);
function fl_input_cut
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_cut, "fl_input_cut");
+ pragma Inline (fl_input_cut);
function fl_input_cut2
(I : in System.Address;
B : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_cut2, "fl_input_cut2");
+ pragma Inline (fl_input_cut2);
function fl_input_cut3
(I : in System.Address;
A, B : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_cut3, "fl_input_cut3");
+ pragma Inline (fl_input_cut3);
function fl_input_copy_cuts
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_copy_cuts, "fl_input_copy_cuts");
+ pragma Inline (fl_input_copy_cuts);
function fl_input_undo
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_undo, "fl_input_undo");
+ pragma Inline (fl_input_undo);
@@ -77,31 +87,37 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_readonly, "fl_input_get_readonly");
+ pragma Inline (fl_input_get_readonly);
procedure fl_input_set_readonly
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_readonly, "fl_input_set_readonly");
+ pragma Inline (fl_input_set_readonly);
function fl_input_get_tab_nav
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_tab_nav, "fl_input_get_tab_nav");
+ pragma Inline (fl_input_get_tab_nav);
procedure fl_input_set_tab_nav
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_tab_nav, "fl_input_set_tab_nav");
+ pragma Inline (fl_input_set_tab_nav);
function fl_input_get_wrap
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_wrap, "fl_input_get_wrap");
+ pragma Inline (fl_input_get_wrap);
procedure fl_input_set_wrap
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_wrap, "fl_input_set_wrap");
+ pragma Inline (fl_input_set_wrap);
@@ -110,43 +126,51 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_input_type, "fl_input_get_input_type");
+ pragma Inline (fl_input_get_input_type);
procedure fl_input_set_input_type
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_input_type, "fl_input_set_input_type");
+ pragma Inline (fl_input_set_input_type);
function fl_input_get_shortcut
(I : in System.Address)
return Interfaces.C.unsigned_long;
pragma Import (C, fl_input_get_shortcut, "fl_input_get_shortcut");
+ pragma Inline (fl_input_get_shortcut);
procedure fl_input_set_shortcut
(I : in System.Address;
T : in Interfaces.C.unsigned_long);
pragma Import (C, fl_input_set_shortcut, "fl_input_set_shortcut");
+ pragma Inline (fl_input_set_shortcut);
function fl_input_get_mark
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_mark, "fl_input_get_mark");
+ pragma Inline (fl_input_get_mark);
function fl_input_set_mark
(I : in System.Address;
T : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_set_mark, "fl_input_set_mark");
+ pragma Inline (fl_input_set_mark);
function fl_input_get_position
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_position, "fl_input_get_position");
+ pragma Inline (fl_input_get_position);
function fl_input_set_position
(I : in System.Address;
T : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_set_position, "fl_input_set_position");
+ pragma Inline (fl_input_set_position);
@@ -156,6 +180,7 @@ package body FLTK.Widgets.Inputs is
P : in Interfaces.C.int)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_index, "fl_input_index");
+ pragma Inline (fl_input_index);
function fl_input_insert
(I : in System.Address;
@@ -163,6 +188,7 @@ package body FLTK.Widgets.Inputs is
L : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_insert, "fl_input_insert");
+ pragma Inline (fl_input_insert);
function fl_input_replace
(I : in System.Address;
@@ -171,12 +197,14 @@ package body FLTK.Widgets.Inputs is
L : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_replace, "fl_input_replace");
+ pragma Inline (fl_input_replace);
procedure fl_input_set_value
(I : in System.Address;
T : in Interfaces.C.char_array;
L : in Interfaces.C.int);
pragma Import (C, fl_input_set_value, "fl_input_set_value");
+ pragma Inline (fl_input_set_value);
@@ -185,16 +213,19 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_maximum_size, "fl_input_get_maximum_size");
+ pragma Inline (fl_input_get_maximum_size);
procedure fl_input_set_maximum_size
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_maximum_size, "fl_input_set_maximum_size");
+ pragma Inline (fl_input_set_maximum_size);
function fl_input_get_size
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_size, "fl_input_get_size");
+ pragma Inline (fl_input_get_size);
@@ -203,41 +234,49 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_get_cursor_color, "fl_input_get_cursor_color");
+ pragma Inline (fl_input_get_cursor_color);
procedure fl_input_set_cursor_color
(I : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_input_set_cursor_color, "fl_input_set_cursor_color");
+ pragma Inline (fl_input_set_cursor_color);
function fl_input_get_textcolor
(I : in System.Address)
return Interfaces.C.unsigned;
pragma Import (C, fl_input_get_textcolor, "fl_input_get_textcolor");
+ pragma Inline (fl_input_get_textcolor);
procedure fl_input_set_textcolor
(I : in System.Address;
T : in Interfaces.C.unsigned);
pragma Import (C, fl_input_set_textcolor, "fl_input_set_textcolor");
+ pragma Inline (fl_input_set_textcolor);
function fl_input_get_textfont
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_textfont, "fl_input_get_textfont");
+ pragma Inline (fl_input_get_textfont);
procedure fl_input_set_textfont
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_textfont, "fl_input_set_textfont");
+ pragma Inline (fl_input_set_textfont);
function fl_input_get_textsize
(I : in System.Address)
return Interfaces.C.int;
pragma Import (C, fl_input_get_textsize, "fl_input_get_textsize");
+ pragma Inline (fl_input_get_textsize);
procedure fl_input_set_textsize
(I : in System.Address;
T : in Interfaces.C.int);
pragma Import (C, fl_input_set_textsize, "fl_input_set_textsize");
+ pragma Inline (fl_input_set_textsize);
@@ -246,6 +285,7 @@ package body FLTK.Widgets.Inputs is
(I : in System.Address;
W, H : in Interfaces.C.int);
pragma Import (C, fl_input_set_size, "fl_input_set_size");
+ pragma Inline (fl_input_set_size);
@@ -253,12 +293,14 @@ package body FLTK.Widgets.Inputs is
procedure fl_input_draw
(W : in System.Address);
pragma Import (C, fl_input_draw, "fl_input_draw");
+ pragma Inline (fl_input_draw);
function fl_input_handle
(W : in System.Address;
E : in Interfaces.C.int)
return Interfaces.C.int;
pragma Import (C, fl_input_handle, "fl_input_handle");
+ pragma Inline (fl_input_handle);
@@ -528,6 +570,7 @@ package body FLTK.Widgets.Inputs is
(This : in Input)
return String is
begin
+ -- pointer to internal buffer only, so no Free required
return Interfaces.C.Strings.Value (fl_input_get_value (This.Void_Ptr));
end Get_Value;
@@ -672,6 +715,8 @@ package body FLTK.Widgets.Inputs is
fl_input_set_input_type (This.Void_Ptr, Input_Kind_Values (To));
end Set_Input_Type;
+ pragma Inline (Set_Input_Type);
+
end Extra;
diff --git a/src/fltk-widgets-inputs.ads b/src/fltk-widgets-inputs.ads
index d3bcbba..c22efb3 100644
--- a/src/fltk-widgets-inputs.ads
+++ b/src/fltk-widgets-inputs.ads
@@ -11,7 +11,7 @@ package FLTK.Widgets.Inputs is
type Input is new Widget with private;
- type Input_Cursor (Data : access Input'Class) is limited null record
+ type Input_Reference (Data : not null access Input'Class) is limited null record
with Implicit_Dereference => Data;
type Input_Kind is
@@ -236,6 +236,62 @@ private
+ pragma Inline (Copy);
+ pragma Inline (Cut);
+ pragma Inline (Copy_Cuts);
+ pragma Inline (Undo);
+
+
+ pragma Inline (Has_Changed);
+ pragma Inline (Clear_Changed);
+ pragma Inline (Is_Readonly);
+ pragma Inline (Set_Readonly);
+ pragma Inline (Is_Tab_Nav);
+ pragma Inline (Set_Tab_Nav);
+ pragma Inline (Is_Wrap);
+ pragma Inline (Set_Wrap);
+
+
+ pragma Inline (Get_Input_Type);
+ pragma Inline (Get_Shortcut_Key);
+ pragma Inline (Set_Shortcut_Key);
+ pragma Inline (Get_Mark);
+ pragma Inline (Set_Mark);
+ pragma Inline (Get_Position);
+ pragma Inline (Set_Position);
+
+
+ pragma Inline (Index);
+ pragma Inline (Insert);
+ pragma Inline (Replace);
+ pragma Inline (Get_Value);
+ pragma Inline (Set_Value);
+
+
+ pragma Inline (Get_Maximum_Size);
+ pragma Inline (Set_Maximum_Size);
+ pragma Inline (Size);
+
+
+ pragma Inline (Get_Cursor_Color);
+ pragma Inline (Set_Cursor_Color);
+ pragma Inline (Get_Text_Color);
+ pragma Inline (Set_Text_Color);
+ pragma Inline (Get_Text_Font);
+ pragma Inline (Set_Text_Font);
+ pragma Inline (Get_Text_Size);
+ pragma Inline (Set_Text_Size);
+
+
+ pragma Inline (Resize);
+
+
+ pragma Inline (Draw);
+ pragma Inline (Handle);
+
+
+
+
Input_Kind_Values : array (Input_Kind) of Interfaces.C.int :=
(Normal_Kind => 0,
Float_Kind => 1,
@@ -252,6 +308,7 @@ private
(F : in System.Address)
return Interfaces.C.Strings.chars_ptr;
pragma Import (C, fl_input_get_value, "fl_input_get_value");
+ pragma Inline (fl_input_get_value);
end FLTK.Widgets.Inputs;