diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-02-03 14:38:29 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-02-03 14:38:29 +1300 |
commit | 2bc98da4d5b964de2d0d5e40927aa777704f2f29 (patch) | |
tree | 95b47d4e1462e96945a9b9c40e247e361144fa57 /body | |
parent | e2e976c7f4716034673e5939fa9f60797bf401fd (diff) |
More test programs added: button, buttons, clock, color_chooser, cursor, curve, hello
Diffstat (limited to 'body')
-rw-r--r-- | body/c_fl.cpp | 4 | ||||
-rw-r--r-- | body/c_fl.h | 1 | ||||
-rw-r--r-- | body/c_fl_ask.cpp | 9 | ||||
-rw-r--r-- | body/c_fl_ask.h | 4 | ||||
-rw-r--r-- | body/fltk-asks.adb | 14 | ||||
-rw-r--r-- | body/fltk.adb | 16 |
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 "+" |