From e2e976c7f4716034673e5939fa9f60797bf401fd Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Sun, 2 Feb 2025 17:21:02 +1300 Subject: Filled holes in Fl_Window binding --- body/c_fl_window.cpp | 81 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 7 deletions(-) (limited to 'body/c_fl_window.cpp') diff --git a/body/c_fl_window.cpp b/body/c_fl_window.cpp index 806e66f..0db4e9d 100644 --- a/body/c_fl_window.cpp +++ b/body/c_fl_window.cpp @@ -19,6 +19,17 @@ extern "C" int widget_handle_hook(void * ud, int e); +// Non-friend protected access + +class Friend_Window : Fl_Window { +public: + using Fl_Window::flush; + using Fl_Window::force_position; +}; + + + + // Attaching all relevant hooks and friends class My_Window : public Fl_Window { @@ -92,10 +103,6 @@ void fl_window_make_current(WINDOW n) { static_cast(n)->make_current(); } -void fl_window_free_position(WINDOW n) { - static_cast(n)->free_position(); -} - @@ -126,10 +133,18 @@ void fl_window_set_icon(WINDOW n, void * img) { static_cast(n)->icon(static_cast(img)); } +void fl_window_icons(WINDOW n, void * imgs, int count) { + static_cast(n)->icons(static_cast(imgs), count); +} + void fl_window_default_icon(void * img) { Fl_Window::default_icon(static_cast(img)); } +void fl_window_default_icons(void * imgs, int count) { + Fl_Window::default_icons(static_cast(imgs), count); +} + const char * fl_window_get_iconlabel(WINDOW n) { return static_cast(n)->iconlabel(); } @@ -161,6 +176,10 @@ void fl_window_set_border(WINDOW n, int b) { static_cast(n)->border(b); } +void fl_window_clear_border(WINDOW n) { + static_cast(n)->clear_border(); +} + unsigned int fl_window_get_override(WINDOW n) { return static_cast(n)->override(); } @@ -196,7 +215,7 @@ const char * fl_window_get_label(WINDOW n) { return static_cast(n)->label(); } -void fl_window_set_label(WINDOW n, char* text) { +void fl_window_copy_label(WINDOW n, char* text) { static_cast(n)->copy_label(text); } @@ -208,12 +227,29 @@ void fl_window_hotspot2(WINDOW n, void * i, int s) { static_cast(n)->hotspot(static_cast(i),s); } +void fl_window_shape(WINDOW n, void * p) { + static_cast(n)->shape(static_cast(p)); +} + + + + void fl_window_size_range(WINDOW n, int lw, int lh, int hw, int hh, int dw, int dh, int a) { static_cast(n)->size_range(lw, lh, hw, hh, dw, dh, a); } -void fl_window_shape(WINDOW n, void * p) { - static_cast(n)->shape(static_cast(p)); +void fl_window_resize(WINDOW n, int x, int y, int w, int h) { + static_cast(n)->resize(x, y, w, h); +} + +int fl_window_get_force_position(WINDOW n) { + int (Fl_Window::*myforce)() const = &Friend_Window::force_position; + return (static_cast(n)->*myforce)(); +} + +void fl_window_set_force_position(WINDOW n, int s) { + void (Fl_Window::*myforce)(int) = &Friend_Window::force_position; + (static_cast(n)->*myforce)(s); } @@ -238,10 +274,41 @@ int fl_window_get_decorated_h(WINDOW n) { +const char * fl_window_get_xclass(WINDOW n) { + return static_cast(n)->xclass(); +} + +void fl_window_set_xclass(WINDOW n, const char * c) { + static_cast(n)->xclass(c); +} + +const char * fl_window_get_default_xclass() { + return Fl_Window::default_xclass(); +} + +void fl_window_set_default_xclass(const char * c) { + Fl_Window::default_xclass(c); +} + +unsigned int fl_window_menu_window(WINDOW n) { + return static_cast(n)->menu_window(); +} + +unsigned int fl_window_tooltip_window(WINDOW n) { + return static_cast(n)->tooltip_window(); +} + + + + void fl_window_draw(WINDOW n) { static_cast(n)->Fl_Window::draw(); } +void fl_window_flush(WINDOW n) { + (static_cast(n)->*(&Friend_Window::flush))(); +} + int fl_window_handle(WINDOW n, int e) { return static_cast(n)->Fl_Window::handle(e); } -- cgit