Skip to content

Commit

Permalink
Add Effect::Dim (gyscos#580)
Browse files Browse the repository at this point in the history
The "dim" or "faint" effect is set by the ANSI escape code `ESC[2m`, and supported in some terminals. It's more or less the opposite of the "bold" effect.

I couldn't get `ncurses`/`pancurses` to render anything differently, even though there's apparently an `A_DIM` constant; I'm not sure why. It renders with `crossterm` and `termion`.
  • Loading branch information
arxanas authored May 19, 2021
1 parent 7ea3a73 commit d64131f
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 4 deletions.
2 changes: 2 additions & 0 deletions cursive-core/src/theme/effect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ pub enum Effect {
Simple,
/// Reverses foreground and background colors
Reverse,
/// Prints foreground as "dim" or "faint" (has no effect for ncurses/pancurses/blt backends)
Dim,
/// Prints foreground in bold
Bold,
/// Prints foreground in italic
Expand Down
6 changes: 4 additions & 2 deletions cursive/src/backends/blt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,8 @@ impl backend::Backend for Backend {
fn set_effect(&self, effect: Effect) {
match effect {
// TODO: does BLT support bold/italic/strikethrough/underline?
Effect::Bold
Effect::Dim
| Effect::Bold
| Effect::Italic
| Effect::Underline
| Effect::Strikethrough
Expand All @@ -286,7 +287,8 @@ impl backend::Backend for Backend {
fn unset_effect(&self, effect: Effect) {
match effect {
// TODO: does BLT support bold/italic/strikethrough/underline?
Effect::Bold
Effect::Dim
| Effect::Bold
| Effect::Italic
| Effect::Underline
| Effect::Strikethrough
Expand Down
3 changes: 2 additions & 1 deletion cursive/src/backends/crossterm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,7 @@ impl backend::Backend for Backend {
match effect {
theme::Effect::Simple => (),
theme::Effect::Reverse => self.set_attr(Attribute::Reverse),
theme::Effect::Dim => self.set_attr(Attribute::Dim),
theme::Effect::Bold => self.set_attr(Attribute::Bold),
theme::Effect::Blink => self.set_attr(Attribute::SlowBlink),
theme::Effect::Italic => self.set_attr(Attribute::Italic),
Expand All @@ -376,7 +377,7 @@ impl backend::Backend for Backend {
match effect {
theme::Effect::Simple => (),
theme::Effect::Reverse => self.set_attr(Attribute::NoReverse),
theme::Effect::Bold => self.set_attr(Attribute::NormalIntensity),
theme::Effect::Dim | theme::Effect::Bold => self.set_attr(Attribute::NormalIntensity),
theme::Effect::Blink => self.set_attr(Attribute::NoBlink),
theme::Effect::Italic => self.set_attr(Attribute::NoItalic),
theme::Effect::Strikethrough => {
Expand Down
2 changes: 2 additions & 0 deletions cursive/src/backends/curses/n.rs
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,7 @@ impl backend::Backend for Backend {
let style = match effect {
Effect::Reverse => ncurses::A_REVERSE(),
Effect::Simple => ncurses::A_NORMAL(),
Effect::Dim => ncurses::A_DIM(),
Effect::Bold => ncurses::A_BOLD(),
Effect::Blink => ncurses::A_BLINK(),
Effect::Italic => ncurses::A_ITALIC(),
Expand All @@ -380,6 +381,7 @@ impl backend::Backend for Backend {
let style = match effect {
Effect::Reverse => ncurses::A_REVERSE(),
Effect::Simple => ncurses::A_NORMAL(),
Effect::Dim => ncurses::A_DIM(),
Effect::Bold => ncurses::A_BOLD(),
Effect::Blink => ncurses::A_BLINK(),
Effect::Italic => ncurses::A_ITALIC(),
Expand Down
2 changes: 2 additions & 0 deletions cursive/src/backends/curses/pan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ impl backend::Backend for Backend {
let style = match effect {
Effect::Simple => pancurses::Attribute::Normal,
Effect::Reverse => pancurses::Attribute::Reverse,
Effect::Dim => pancurses::Attribute::Dim,
Effect::Bold => pancurses::Attribute::Bold,
Effect::Blink => pancurses::Attribute::Blink,
Effect::Italic => pancurses::Attribute::Italic,
Expand All @@ -424,6 +425,7 @@ impl backend::Backend for Backend {
let style = match effect {
Effect::Simple => pancurses::Attribute::Normal,
Effect::Reverse => pancurses::Attribute::Reverse,
Effect::Dim => pancurses::Attribute::Dim,
Effect::Bold => pancurses::Attribute::Bold,
Effect::Blink => pancurses::Attribute::Blink,
Effect::Italic => pancurses::Attribute::Italic,
Expand Down
5 changes: 4 additions & 1 deletion cursive/src/backends/termion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ impl backend::Backend for Backend {
match effect {
theme::Effect::Simple => (),
theme::Effect::Reverse => self.write(tstyle::Invert),
theme::Effect::Dim => self.write(tstyle::Faint),
theme::Effect::Bold => self.write(tstyle::Bold),
theme::Effect::Blink => self.write(tstyle::Blink),
theme::Effect::Italic => self.write(tstyle::Italic),
Expand All @@ -259,7 +260,9 @@ impl backend::Backend for Backend {
match effect {
theme::Effect::Simple => (),
theme::Effect::Reverse => self.write(tstyle::NoInvert),
theme::Effect::Bold => self.write(tstyle::NoFaint),
theme::Effect::Dim | theme::Effect::Bold => {
self.write(tstyle::NoFaint)
}
theme::Effect::Blink => self.write(tstyle::NoBlink),
theme::Effect::Italic => self.write(tstyle::NoItalic),
theme::Effect::Strikethrough => self.write(tstyle::NoCrossedOut),
Expand Down

0 comments on commit d64131f

Please sign in to comment.