diff options
| author | Greg Ercolano <erco@seriss.com> | 2023-11-25 06:56:38 -0800 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2023-11-25 06:56:38 -0800 |
| commit | 00808500926af83a531fc1fdc0b2df9716743e8b (patch) | |
| tree | 3773c4ad7c02134c8faa77c484fc48f22516d34f | |
| parent | 4f894e4745280958e1e4a08f4e49bd94abb5ea36 (diff) | |
Fl_Terminal better name for flags -> charflags
| -rw-r--r-- | FL/Fl_Terminal.H | 40 | ||||
| -rw-r--r-- | src/Fl_Terminal.cxx | 59 |
2 files changed, 49 insertions, 50 deletions
diff --git a/FL/Fl_Terminal.H b/FL/Fl_Terminal.H index ff0062000..c58a60ae5 100644 --- a/FL/Fl_Terminal.H +++ b/FL/Fl_Terminal.H @@ -353,7 +353,7 @@ public: enum CharFlags { FG_XTERM = 0x01, ///< this char's fg color is an XTERM color; can be affected by Dim+Bold BG_XTERM = 0x02, ///< this char's bg color is an XTERM color; can be affected by Dim+Bold - EOL = 0x04, ///< this char at end of line, used for line wrap during screen resizing + EOL = 0x04, ///< TODO: char at EOL, used for line re-wrap during screen resizing RESV_A = 0x08, RESV_B = 0x10, RESV_C = 0x20, @@ -405,7 +405,7 @@ protected: // class FL_EXPORT CharStyle { uchar attrib_; // bold, underline.. - uchar flags_; // CharFlags + uchar charflags_; // CharFlags (xterm color management) Fl_Color fgcolor_; // foreground color for text Fl_Color bgcolor_; // background color for text Fl_Color defaultfgcolor_; // default fg color used by ESC[0m @@ -428,19 +428,19 @@ protected: int fontdescent(void) const { return fontdescent_; } int charwidth(void) const { return charwidth_; } uchar colorbits_only(uchar inflags) const; - void attrib(uchar val) { attrib_ = val; } - void set_flag(uchar val) { flags_ |= val; } - void clr_flag(uchar val) { flags_ &= ~val; } + void attrib(uchar val) { attrib_ = 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); - void fgcolor(int r,int g,int b) { fgcolor_ = (r<<24) | (g<<16) | (b<<8); clr_flag(FG_XTERM); } - void bgcolor(int r,int g,int b) { bgcolor_ = (r<<24) | (g<<16) | (b<<8); clr_flag(BG_XTERM); } - void fgcolor(Fl_Color val) { fgcolor_ = val; clr_flag(FG_XTERM); } - void bgcolor(Fl_Color val) { bgcolor_ = val; clr_flag(BG_XTERM); } - void defaultfgcolor(Fl_Color val) { defaultfgcolor_ = val; } - void defaultbgcolor(Fl_Color val) { defaultbgcolor_ = val; } - void fontface(Fl_Font val) { fontface_ = val; update(); } - void fontsize(Fl_Fontsize val) { fontsize_ = val; update(); } + 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); } + void defaultfgcolor(Fl_Color val) { defaultfgcolor_ = val; } + void defaultbgcolor(Fl_Color val) { defaultbgcolor_ = val; } + void fontface(Fl_Font val) { fontface_ = val; update(); } + void fontsize(Fl_Fontsize val) { fontsize_ = val; update(); } void update(void); void update_fake(void); // SGR MODES: Set Graphics Rendition @@ -506,11 +506,11 @@ protected: class FL_EXPORT Utf8Char { static const int max_utf8_ = 4; // RFC 3629 paraphrased: In UTF-8, chars are encoded with 1 to 4 octets char text_[max_utf8_]; // memory for actual ASCII or UTF-8 byte contents - uchar len_; // length of bytes in text_[] buffer; 1 for ASCII, >1 for UTF-8 - uchar attrib_; // attribute bits for this char (bold, underline..) - uchar flags_; // CharFlags bits - Fl_Color fgcolor_; // fltk fg color (supports 8color or 24bit color set w/ESC[37;<r>;<g>;<b>m) - Fl_Color bgcolor_; // fltk bg color (supports 8color or 24bit color set w/ESC[47;<r>;<g>;<b>m) + uchar len_; // length of bytes in text_[] buffer; 1 for ASCII, >1 for UTF-8 + uchar attrib_; // attribute bits for this char (bold, underline..) + uchar charflags_; // CharFlags (xterm colors management) + Fl_Color fgcolor_; // fltk fg color (supports 8color or 24bit color set w/ESC[37;<r>;<g>;<b>m) + 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); public: @@ -529,8 +529,8 @@ protected: // const char* text_utf8(void) const { return text_; } // Return the attribute for this char - uchar attrib(void) const { return attrib_; } - uchar flags(void) const { return flags_; } + uchar attrib(void) const { return attrib_; } + uchar charflags(void) const { return charflags_; } Fl_Color fgcolor(void) const; Fl_Color bgcolor(void) const; // Return the length of this character in bytes (UTF-8 can be multibyte..) diff --git a/src/Fl_Terminal.cxx b/src/Fl_Terminal.cxx index bd8f18524..95b6ef924 100644 --- a/src/Fl_Terminal.cxx +++ b/src/Fl_Terminal.cxx @@ -424,12 +424,11 @@ pfail: // Fl_Terminal::CharStyle::CharStyle(bool fontsize_defer) { attrib_ = 0; - flags_ = 0; + charflags_ = (FG_XTERM | BG_XTERM); defaultfgcolor_ = 0xd0d0d000; // off white defaultbgcolor_ = 0xffffffff; // special color: doesn't draw, 'shows thru' to box() fgcolor_ = defaultfgcolor_; bgcolor_ = defaultbgcolor_; - flags_ |= (FG_XTERM | BG_XTERM); fontface_ = FL_COURIER; fontsize_ = 14; if (!fontsize_defer) update(); // normal behavior @@ -469,17 +468,17 @@ Fl_Color Fl_Terminal::CharStyle::bgcolor(void) const { // Only the color bits of 'inflags' are modified with our color bits. // uchar Fl_Terminal::CharStyle::colorbits_only(uchar inflags) const { - return (inflags & ~COLORMASK) | (flags_ & COLORMASK); // add color bits only + return (inflags & ~COLORMASK) | (charflags_ & COLORMASK); // add color bits only } void Fl_Terminal::CharStyle::fgcolor_uchar(uchar val) { fgcolor_ = fltk_fg_color(val); - set_flag(FG_XTERM); + set_charflag(FG_XTERM); } void Fl_Terminal::CharStyle::bgcolor_uchar(uchar val) { bgcolor_ = fltk_bg_color(val); - set_flag(BG_XTERM); + set_charflag(BG_XTERM); } /////////////////////////////////// @@ -502,23 +501,23 @@ void Fl_Terminal::Cursor::scroll(int nrows) { // Ctor Fl_Terminal::Utf8Char::Utf8Char(void) { - text_[0] = ' '; - len_ = 1; - attrib_ = 0; - flags_ = 0; - fgcolor_ = 0xffffff00; - bgcolor_ = 0xffffffff; // special color: doesn't draw, 'shows thru' to box() + text_[0] = ' '; + len_ = 1; + attrib_ = 0; + charflags_ = 0; + fgcolor_ = 0xffffff00; + bgcolor_ = 0xffffffff; // special color: doesn't draw, 'shows thru' to box() } // copy ctor Fl_Terminal::Utf8Char::Utf8Char(const Utf8Char& src) { // local instance not initialized yet; init first, then copy text - text_[0] = ' '; - len_ = 1; - attrib_ = src.attrib_; - flags_ = src.flags_; - fgcolor_ = src.fgcolor_; - bgcolor_ = src.bgcolor_; + text_[0] = ' '; + len_ = 1; + attrib_ = src.attrib_; + charflags_ = src.charflags_; + fgcolor_ = src.fgcolor_; + bgcolor_ = src.bgcolor_; text_utf8_(src.text_utf8(), src.length()); // copy the src text } @@ -526,10 +525,10 @@ Fl_Terminal::Utf8Char::Utf8Char(const Utf8Char& src) { Fl_Terminal::Utf8Char& Fl_Terminal::Utf8Char::operator=(const Utf8Char& src) { // local instance is already initialized, so just change its contents text_utf8_(src.text_utf8(), src.length()); // local copy src text - attrib_ = src.attrib_; - flags_ = src.flags_; - fgcolor_ = src.fgcolor_; - bgcolor_ = src.bgcolor_; + attrib_ = src.attrib_; + charflags_ = src.charflags_; + fgcolor_ = src.fgcolor_; + bgcolor_ = src.bgcolor_; return *this; } @@ -560,10 +559,10 @@ void Fl_Terminal::Utf8Char::text_utf8(const char *text, const CharStyle& style) { text_utf8_(text, len); // updates text_, len_ //issue 837 // fl_font(style.fontface(), style.fontsize()); // need font to calc UTF-8 width - attrib_ = style.attrib(); - flags_ = style.colorbits_only(flags_); - fgcolor_ = style.fgcolor(); - bgcolor_ = style.bgcolor(); + attrib_ = style.attrib(); + charflags_ = style.colorbits_only(charflags_); + fgcolor_ = style.fgcolor(); + bgcolor_ = style.bgcolor(); } // Set char to single printable ASCII character 'c' @@ -634,7 +633,7 @@ Fl_Color Fl_Terminal::Utf8Char::attr_color(Fl_Color col, const Fl_Widget *grp) c Fl_Color Fl_Terminal::Utf8Char::attr_fg_color(const Fl_Widget *grp) const { if (grp && (fgcolor_ == 0xffffffff)) // see thru color? { return grp->color(); } // return grp's color() - return (flags_ & Fl_Terminal::FG_XTERM) // fg is an xterm color? + return (charflags_ & Fl_Terminal::FG_XTERM) // fg is an xterm color? ? attr_color(fgcolor(), grp) // ..use attributes : fgcolor(); // ..ignore attributes. } @@ -642,7 +641,7 @@ Fl_Color Fl_Terminal::Utf8Char::attr_fg_color(const Fl_Widget *grp) const { Fl_Color Fl_Terminal::Utf8Char::attr_bg_color(const Fl_Widget *grp) const { if (grp && (bgcolor_ == 0xffffffff)) // see thru color? { return grp->color(); } // return grp's color() - return (flags_ & Fl_Terminal::BG_XTERM) // bg is an xterm color? + return (charflags_ & Fl_Terminal::BG_XTERM) // bg is an xterm color? ? attr_color(bgcolor(), grp) // ..use attributes : bgcolor(); // ..ignore attributes. } @@ -1191,11 +1190,11 @@ void Fl_Terminal::update_scrollbar(void) { // Refit the display to match screen void Fl_Terminal::refit_disp_to_screen(void) { - int dh = h_to_row(scrn_.h()); - int dw = MAX(w_to_col(scrn_.w()), disp_cols()); // enlarge cols only + int dh = h_to_row(scrn_.h()); // height in rows for tty pixel height + int dw = MAX(w_to_col(scrn_.w()), disp_cols()); // width in cols for tty pixel width - enlarge only! int drows = clamp(dh, 2, dh); // 2 rows minimum int dcols = clamp(dw, 10, dw); // 10 cols minimum - int drow_diff = drows - ring_.disp_rows(); // change in rows? + int drow_diff = drows - display_rows(); // change in rows? ring_.resize(drows, dcols, hist_rows(), *current_style_); cursor_.scroll(-drow_diff); clear_mouse_selection(); |
