From a69c5c5c925bb1521d894ef72ca7d99fb2f8f3aa Mon Sep 17 00:00:00 2001 From: Cyprinus Carpio Date: Sun, 30 Jun 2024 18:08:00 +0200 Subject: Fl_Tree +/- buttons are no longer drawn using bitmaps, different default line color (#995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fl_Tree changed to support system color themes (PR #995) merging CyprinusCarpio's mods carried over from from issue #972. * Fl_Tree: use named (colormap) colors to support system color themes (see issue #972). changed connectorcolor() default from gray ramp color to FL_INACTIVE_COLOR (Fl_Color(8)), and similar named colormap colors for icon drawing. * Fl_Tree ⊞ / ⊟ icons (and on macs, ▶ / ▼icons) are now drawn w/fl_draw() functions instead of with xpm bitmaps for colormap control --------- Co-authored-by: Greg Ercolano --- src/drivers/Darwin/Fl_Darwin_System_Driver.H | 5 +-- src/drivers/Darwin/Fl_Darwin_System_Driver.cxx | 49 ++++---------------------- 2 files changed, 7 insertions(+), 47 deletions(-) (limited to 'src/drivers') diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.H b/src/drivers/Darwin/Fl_Darwin_System_Driver.H index 776f68738..011bea7ff 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.H +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.H @@ -64,10 +64,7 @@ public: const char *latin1_to_local(const char *t, int n) FL_OVERRIDE; const char *local_to_mac_roman(const char *t, int n) FL_OVERRIDE; const char *mac_roman_to_local(const char *t, int n) FL_OVERRIDE; - Fl_Pixmap *tree_openpixmap() FL_OVERRIDE; - static const char * const tree_open_xpm_darwin[]; // used by tree_openpixmap() - Fl_Pixmap *tree_closepixmap() FL_OVERRIDE; - static const char * const tree_close_xpm_darwin[]; // used by tree_closepixmap() + void tree_draw_expando_button(int x, int y, bool state, bool active) FL_OVERRIDE; int tree_connector_style() FL_OVERRIDE; const char *filename_name(const char *buf) FL_OVERRIDE; void add_fd(int fd, int when, Fl_FD_Handler cb, void* = 0) FL_OVERRIDE; diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx index c44ba34c1..9b6a2a694 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include "../../flstring.h" #include #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 @@ -357,50 +358,12 @@ Fl_Sys_Menu_Bar_Driver *Fl_Darwin_System_Driver::sys_menu_bar_driver() return Fl_MacOS_Sys_Menu_Bar_Driver::driver(); } -const char * const Fl_Darwin_System_Driver::tree_open_xpm_darwin[] = { - "11 11 2 1", - ". c None", - "@ c #000000", - "...@.......", - "...@@......", - "...@@@.....", - "...@@@@....", - "...@@@@@...", - "...@@@@@@..", - "...@@@@@...", - "...@@@@....", - "...@@@.....", - "...@@......", - "...@......." -}; - -const char * const Fl_Darwin_System_Driver::tree_close_xpm_darwin[] = { - "11 11 2 1", - ". c None", - "@ c #000000", - "...........", - "...........", - "...........", - "@@@@@@@@@@@", - ".@@@@@@@@@.", - "..@@@@@@@..", - "...@@@@@...", - "....@@@....", - ".....@.....", - "...........", - "..........." -}; - -Fl_Pixmap *Fl_Darwin_System_Driver::tree_openpixmap() { - static Fl_Pixmap *pixmap = new Fl_Pixmap(tree_open_xpm_darwin); - return pixmap; +// Draw Mac-specific Fl_Tree open/close icons +void Fl_Darwin_System_Driver::tree_draw_expando_button(int x, int y, bool state, bool active) { + fl_color(active ? FL_FOREGROUND_COLOR : FL_INACTIVE_COLOR); + if(state) fl_polygon(x + 3, y, x + 3, y + 11, x + 8, y + 5); // right arrow: ▶ + else fl_polygon(x, y + 3, x + 11, y + 3, x + 5, y + 8); // down arrow: ▼ } - -Fl_Pixmap *Fl_Darwin_System_Driver::tree_closepixmap() { - static Fl_Pixmap *pixmap = new Fl_Pixmap(tree_close_xpm_darwin); - return pixmap; -} - int Fl_Darwin_System_Driver::tree_connector_style() { return FL_TREE_CONNECTOR_NONE; } -- cgit v1.2.3