| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import 'package:xterm/theme/terminal_color.dart';
- import 'package:xterm/utli/hash_values.dart';
- class CellAttr {
- CellAttr({
- this.fgColor,
- this.bgColor,
- this.bold = false,
- this.faint = false,
- this.italic = false,
- this.underline = false,
- this.blink = false,
- this.inverse = false,
- this.invisible = false,
- }) : hashCode = hashValues(
- fgColor?.value,
- bgColor?.value,
- bold,
- faint,
- italic,
- underline,
- blink,
- inverse,
- invisible,
- );
- final TerminalColor? fgColor;
- final TerminalColor? bgColor;
- final bool bold;
- final bool faint;
- final bool italic;
- final bool underline;
- final bool blink;
- final bool inverse;
- final bool invisible;
- @override
- final int hashCode;
- @override
- bool operator ==(Object other) => other.hashCode == hashCode;
- // CellAttr copy() {
- // return CellAttr(
- // fgColor: this.fgColor,
- // bgColor: this.bgColor,
- // bold: this.bold,
- // faint: this.faint,
- // italic: this.italic,
- // underline: this.underline,
- // blink: this.blink,
- // inverse: this.inverse,
- // invisible: this.invisible,
- // );
- // }
- // void reset({
- // @required fgColor,
- // bgColor,
- // bold = false,
- // faint = false,
- // italic = false,
- // underline = false,
- // blink = false,
- // inverse = false,
- // invisible = false,
- // }) {
- // this.fgColor = fgColor;
- // this.bgColor = bgColor;
- // this.bold = bold;
- // this.faint = faint;
- // this.italic = italic;
- // this.underline = underline;
- // this.blink = blink;
- // this.inverse = inverse;
- // this.invisible = invisible;
- // }
- CellAttr copyWith({
- TerminalColor? fgColor,
- TerminalColor? bgColor,
- bool? bold,
- bool? faint,
- bool? italic,
- bool? underline,
- bool? blink,
- bool? inverse,
- bool? invisible,
- }) {
- return CellAttr(
- fgColor: fgColor ?? this.fgColor,
- bgColor: bgColor ?? this.bgColor,
- bold: bold ?? this.bold,
- faint: faint ?? this.faint,
- italic: italic ?? this.italic,
- underline: underline ?? this.underline,
- blink: blink ?? this.blink,
- inverse: inverse ?? this.inverse,
- invisible: invisible ?? this.invisible,
- );
- }
- }
- class CellAttrTemplate {
- CellAttrTemplate() {
- reset();
- }
- late CellAttr _attr;
- set fgColor(TerminalColor value) {
- _attr = _attr.copyWith(fgColor: value);
- }
- set bgColor(TerminalColor value) {
- _attr = _attr.copyWith(bgColor: value);
- }
- set bold(bool value) {
- _attr = _attr.copyWith(bold: value);
- }
- set faint(bool value) {
- _attr = _attr.copyWith(faint: value);
- }
- set italic(bool value) {
- _attr = _attr.copyWith(italic: value);
- }
- set underline(bool value) {
- _attr = _attr.copyWith(underline: value);
- }
- set blink(bool value) {
- _attr = _attr.copyWith(blink: value);
- }
- set inverse(bool value) {
- _attr = _attr.copyWith(inverse: value);
- }
- set invisible(bool value) {
- _attr = _attr.copyWith(invisible: value);
- }
- CellAttr get value => _attr;
- void reset() {
- _attr = CellAttr();
- }
- void use(CellAttr attr) {
- _attr = attr;
- }
- }
|