Browse Source

Fl_Terminal better name for flags -> charflags

pull/857/head
Greg Ercolano 2 years ago
parent
commit
0080850092
  1. 20
      FL/Fl_Terminal.H
  2. 27
      src/Fl_Terminal.cxx

20
FL/Fl_Terminal.H

@ -353,7 +353,7 @@ public: @@ -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: @@ -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
@ -429,14 +429,14 @@ protected: @@ -429,14 +429,14 @@ protected:
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 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 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(); }
@ -508,7 +508,7 @@ protected: @@ -508,7 +508,7 @@ protected:
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
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
@ -530,7 +530,7 @@ protected: @@ -530,7 +530,7 @@ 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 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..)

27
src/Fl_Terminal.cxx

@ -424,12 +424,11 @@ pfail: @@ -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 { @@ -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);
}
///////////////////////////////////
@ -505,7 +504,7 @@ Fl_Terminal::Utf8Char::Utf8Char(void) { @@ -505,7 +504,7 @@ Fl_Terminal::Utf8Char::Utf8Char(void) {
text_[0] = ' ';
len_ = 1;
attrib_ = 0;
flags_ = 0;
charflags_ = 0;
fgcolor_ = 0xffffff00;
bgcolor_ = 0xffffffff; // special color: doesn't draw, 'shows thru' to box()
}
@ -516,7 +515,7 @@ Fl_Terminal::Utf8Char::Utf8Char(const Utf8Char& src) { @@ -516,7 +515,7 @@ Fl_Terminal::Utf8Char::Utf8Char(const Utf8Char& src) {
text_[0] = ' ';
len_ = 1;
attrib_ = src.attrib_;
flags_ = src.flags_;
charflags_ = src.charflags_;
fgcolor_ = src.fgcolor_;
bgcolor_ = src.bgcolor_;
text_utf8_(src.text_utf8(), src.length()); // copy the src text
@ -527,7 +526,7 @@ Fl_Terminal::Utf8Char& Fl_Terminal::Utf8Char::operator=(const Utf8Char& src) { @@ -527,7 +526,7 @@ 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_;
charflags_ = src.charflags_;
fgcolor_ = src.fgcolor_;
bgcolor_ = src.bgcolor_;
return *this;
@ -561,7 +560,7 @@ void Fl_Terminal::Utf8Char::text_utf8(const char *text, @@ -561,7 +560,7 @@ void Fl_Terminal::Utf8Char::text_utf8(const char *text,
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_);
charflags_ = style.colorbits_only(charflags_);
fgcolor_ = style.fgcolor();
bgcolor_ = style.bgcolor();
}
@ -634,7 +633,7 @@ Fl_Color Fl_Terminal::Utf8Char::attr_color(Fl_Color col, const Fl_Widget *grp) 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 { @@ -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) { @@ -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();

Loading…
Cancel
Save