diff options
| author | Greg Ercolano <erco@seriss.com> | 2024-02-16 13:10:06 -0800 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2024-02-16 13:10:06 -0800 |
| commit | 58a1496389edfcb03c3e5d1038fc9c2a524372c4 (patch) | |
| tree | 0dbb973fba24583a47f622767e6034c03984c1d8 /FL/Fl_Terminal.H | |
| parent | 1069ebc1b65bdd2b69dddab300414f47002d3e4b (diff) | |
Fixed Fl_Terminal xterm color 39/49 handling, and other mods.
Fixed a bug in the handling of xterm color 39 + 49, which avoids
applying Dim/Bold if default color is the special "see through" color
0xffffff00. A test will be added to test/terminal to excercise this
in a follow up commit.
Renamed CharStyle::?gcolor_uchar() -> CharStyle::?gcolor_xterm()
for a consistent naming convention.
Changed fltk_fg_color() from a static func to a CharStyle method
because it needs to access the defaultcolor for the special cases
for xterm colors 39 and 49.
Made CharStyle::attr_color() private, as per Jonathan Griffitts request
in issue #909.
Improved docs regarding effects of Dim/Bold for xterm and non-xterm color
methods.
Fl_Terminal::text?gcolor_xterm() methods now use CharStyle::?gcolor_xterm()
methods, removing the duplicate code logic.
Diffstat (limited to 'FL/Fl_Terminal.H')
| -rw-r--r-- | FL/Fl_Terminal.H | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/FL/Fl_Terminal.H b/FL/Fl_Terminal.H index e1ad5e91f..09673f557 100644 --- a/FL/Fl_Terminal.H +++ b/FL/Fl_Terminal.H @@ -419,6 +419,11 @@ protected: CharStyle(bool fontsize_defer); uchar attrib(void) const { return attrib_; } uchar charflags(void) const { return charflags_; } + // Colors - All access to colors are by Fl_Color only. + // There are three ways to SET colors: Fl_Color, rgb, xterm(uchar) + // + Fl_Color fltk_fg_color(uchar ci); + Fl_Color fltk_bg_color(uchar ci); Fl_Color fgcolor(void) const; Fl_Color bgcolor(void) const; Fl_Color defaultfgcolor(void) const { return defaultfgcolor_; } @@ -433,14 +438,17 @@ protected: void charflags(uchar val) { charflags_ = val; } void set_charflag(uchar val) { charflags_ |= val; } void clr_charflag(uchar val) { charflags_ &= ~val; } - void fgcolor_uchar(uchar val); - void bgcolor_uchar(uchar val); + // Non-xterm colors void fgcolor(int r,int g,int b) { fgcolor_ = (r<<24) | (g<<16) | (b<<8); clr_charflag(FG_XTERM); } void bgcolor(int r,int g,int b) { bgcolor_ = (r<<24) | (g<<16) | (b<<8); clr_charflag(BG_XTERM); } void fgcolor(Fl_Color val) { fgcolor_ = val; clr_charflag(FG_XTERM); } void bgcolor(Fl_Color val) { bgcolor_ = val; clr_charflag(BG_XTERM); } + // Xterm colors void fgcolor_xterm(Fl_Color val) { fgcolor_ = val; set_charflag(FG_XTERM); } void bgcolor_xterm(Fl_Color val) { bgcolor_ = val; set_charflag(BG_XTERM); } + void fgcolor_xterm(uchar val); + void bgcolor_xterm(uchar val); + // void defaultfgcolor(Fl_Color val) { defaultfgcolor_ = val; } void defaultbgcolor(Fl_Color val) { defaultbgcolor_ = val; } void fontface(Fl_Font val) { fontface_ = val; update(); } @@ -519,6 +527,7 @@ protected: Fl_Color bgcolor_; // fltk bg color (supports 8color or 24bit color set w/ESC[47;<r>;<g>;<b>m) // Private methods void text_utf8_(const char *text, int len); + Fl_Color attr_color_(Fl_Color col, const Fl_Widget *grp) const; public: // Public methods Utf8Char(void); // ctor @@ -548,8 +557,6 @@ protected: bool is_char(char c) const { return *text_ == c; } void show_char(void) const { ::printf("%.*s", len_, text_); } void show_char_info(void) const { ::fprintf(stderr, "UTF-8('%.*s', len=%d)\n", len_, text_, len_); } - - Fl_Color attr_color(Fl_Color col, const Fl_Widget *grp) const; Fl_Color attr_fg_color(const Fl_Widget *grp) const; Fl_Color attr_bg_color(const Fl_Widget *grp) const; }; |
