summaryrefslogtreecommitdiff
path: root/body
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2025-02-03 14:38:29 +1300
committerJedidiah Barber <contact@jedbarber.id.au>2025-02-03 14:38:29 +1300
commit2bc98da4d5b964de2d0d5e40927aa777704f2f29 (patch)
tree95b47d4e1462e96945a9b9c40e247e361144fa57 /body
parente2e976c7f4716034673e5939fa9f60797bf401fd (diff)
More test programs added: button, buttons, clock, color_chooser, cursor, curve, hello
Diffstat (limited to 'body')
-rw-r--r--body/c_fl.cpp4
-rw-r--r--body/c_fl.h1
-rw-r--r--body/c_fl_ask.cpp9
-rw-r--r--body/c_fl_ask.h4
-rw-r--r--body/fltk-asks.adb14
-rw-r--r--body/fltk.adb16
6 files changed, 46 insertions, 2 deletions
diff --git a/body/c_fl.cpp b/body/c_fl.cpp
index ec5f7e5..a9e6d16 100644
--- a/body/c_fl.cpp
+++ b/body/c_fl.cpp
@@ -55,6 +55,10 @@ unsigned int fl_enum_rgb_color(unsigned char r, unsigned char g, unsigned char b
return fl_rgb_color(r, g, b);
}
+unsigned int fl_enum_contrast(unsigned int f, unsigned int b) {
+ return fl_contrast(f, b);
+}
+
diff --git a/body/c_fl.h b/body/c_fl.h
index 9f79979..51dbedb 100644
--- a/body/c_fl.h
+++ b/body/c_fl.h
@@ -41,6 +41,7 @@ extern "C" size_t c_pointer_size();
extern "C" unsigned int fl_enum_rgb_color(unsigned char r, unsigned char g, unsigned char b);
+extern "C" unsigned int fl_enum_contrast(unsigned int f, unsigned int b);
extern "C" int fl_abi_check(int v);
diff --git a/body/c_fl_ask.cpp b/body/c_fl_ask.cpp
index 20af2e3..30dd480 100644
--- a/body/c_fl_ask.cpp
+++ b/body/c_fl_ask.cpp
@@ -5,6 +5,7 @@
#include <FL/fl_ask.H>
+#include <FL/fl_show_colormap.H>
#include <FL/Fl_File_Chooser.H>
#include <FL/Fl_Color_Chooser.H>
#include "c_fl_ask.h"
@@ -90,10 +91,16 @@ int fl_ask_color_chooser(const char * n, double & r, double & g, double & b, int
return fl_color_chooser(n, r, g, b, m);
}
-int fl_ask_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m) {
+int fl_ask_color_chooser2(const char * n,
+ unsigned char & r, unsigned char & g, unsigned char & b, int m)
+{
return fl_color_chooser(n, r, g, b, m);
}
+unsigned int fl_ask_show_colormap(unsigned int h) {
+ return static_cast<unsigned int>(fl_show_colormap(static_cast<Fl_Color>(h)));
+}
+
char * fl_ask_dir_chooser(const char * m, const char * d, int r) {
return fl_dir_chooser(m, d, r);
}
diff --git a/body/c_fl_ask.h b/body/c_fl_ask.h
index f68bc85..4c18391 100644
--- a/body/c_fl_ask.h
+++ b/body/c_fl_ask.h
@@ -30,7 +30,9 @@ extern "C" const char * fl_ask_password(const char * m, const char * d);
extern "C" int fl_ask_color_chooser(const char * n, double & r, double & g, double & b, int m);
-extern "C" int fl_ask_color_chooser2(const char * n, uchar & r, uchar & g, uchar & b, int m);
+extern "C" int fl_ask_color_chooser2(const char * n,
+ unsigned char & r, unsigned char & g, unsigned char & b, int m);
+extern "C" unsigned int fl_ask_show_colormap(unsigned int h);
extern "C" char * fl_ask_dir_chooser(const char * m, const char * d, int r);
extern "C" char * fl_ask_file_chooser(const char * m, const char * p, const char * d, int r);
extern "C" void fl_ask_file_chooser_callback(void(*cb)(const char *));
diff --git a/body/fltk-asks.adb b/body/fltk-asks.adb
index d6eb8ee..2b27940 100644
--- a/body/fltk-asks.adb
+++ b/body/fltk-asks.adb
@@ -140,6 +140,12 @@ package body FLTK.Asks is
pragma Import (C, fl_ask_color_chooser2, "fl_ask_color_chooser2");
pragma Inline (fl_ask_color_chooser2);
+ function fl_ask_show_colormap
+ (H : in Interfaces.C.unsigned)
+ return Interfaces.C.unsigned;
+ pragma Import (C, fl_ask_show_colormap, "fl_ask_show_colormap");
+ pragma Inline (fl_ask_show_colormap);
+
function fl_ask_dir_chooser
(M, D : in Interfaces.C.char_array;
R : in Interfaces.C.int)
@@ -554,6 +560,14 @@ package body FLTK.Asks is
end Color_Chooser;
+ function Show_Colormap
+ (Old_Hue : in Color)
+ return Color is
+ begin
+ return Color (fl_ask_show_colormap (Interfaces.C.unsigned (Old_Hue)));
+ end Show_Colormap;
+
+
function Dir_Chooser
(Message, Default : in String;
Relative : in Boolean := False)
diff --git a/body/fltk.adb b/body/fltk.adb
index d729364..0e391e3 100644
--- a/body/fltk.adb
+++ b/body/fltk.adb
@@ -23,6 +23,12 @@ package body FLTK is
pragma Import (C, fl_enum_rgb_color, "fl_enum_rgb_color");
pragma Inline (fl_enum_rgb_color);
+ function fl_enum_contrast
+ (F, B : in Interfaces.C.unsigned)
+ return Interfaces.C.unsigned;
+ pragma Import (C, fl_enum_contrast, "fl_enum_contrast");
+ pragma Inline (fl_enum_contrast);
+
@@ -120,6 +126,16 @@ package body FLTK is
end RGB_Color;
+ function Contrast
+ (Fore, Back : in Color)
+ return Color is
+ begin
+ return Color (fl_enum_contrast
+ (Interfaces.C.unsigned (Fore),
+ Interfaces.C.unsigned (Back)));
+ end Contrast;
+
+
function "+"