git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
#35 emoji font wip
[fanfix.git]
/
src
/
jexer
/
bits
/
CellAttributes.java
diff --git
a/src/jexer/bits/CellAttributes.java
b/src/jexer/bits/CellAttributes.java
index a4528c4401e5263dcd13f973b2d654fa67d37127..99366fda690740b738563493fef900a506436d7d 100644
(file)
--- a/
src/jexer/bits/CellAttributes.java
+++ b/
src/jexer/bits/CellAttributes.java
@@
-3,7
+3,7
@@
*
* The MIT License (MIT)
*
*
* The MIT License (MIT)
*
- * Copyright (C) 201
7
Kevin Lamonte
+ * Copyright (C) 201
9
Kevin Lamonte
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@
-34,43
+34,53
@@
package jexer.bits;
public class CellAttributes {
// ------------------------------------------------------------------------
public class CellAttributes {
// ------------------------------------------------------------------------
- //
Variable
s --------------------------------------------------------------
+ //
Constant
s --------------------------------------------------------------
// ------------------------------------------------------------------------
/**
* Bold attribute.
*/
// ------------------------------------------------------------------------
/**
* Bold attribute.
*/
- private
boolean bold
;
+ private
static final int BOLD = 0x01
;
/**
* Blink attribute.
*/
/**
* Blink attribute.
*/
- private
boolean blink
;
+ private
static final int BLINK = 0x02
;
/**
* Reverse attribute.
*/
/**
* Reverse attribute.
*/
- private
boolean reverse
;
+ private
static final int REVERSE = 0x04
;
/**
* Underline attribute.
*/
/**
* Underline attribute.
*/
- private
boolean underline
;
+ private
static final int UNDERLINE = 0x08
;
/**
* Protected attribute.
*/
/**
* Protected attribute.
*/
- private boolean protect;
+ private static final int PROTECT = 0x10;
+
+
+ // ------------------------------------------------------------------------
+ // Variables --------------------------------------------------------------
+ // ------------------------------------------------------------------------
+
+ /**
+ * Boolean flags.
+ */
+ private int flags = 0;
/**
* Foreground color. Color.WHITE, Color.RED, etc.
*/
/**
* Foreground color. Color.WHITE, Color.RED, etc.
*/
- private Color foreColor;
+ private Color foreColor
= Color.WHITE
;
/**
* Background color. Color.WHITE, Color.RED, etc.
*/
/**
* Background color. Color.WHITE, Color.RED, etc.
*/
- private Color backColor;
+ private Color backColor
= Color.BLACK
;
/**
* Foreground color as 24-bit RGB value. Negative value means not set.
/**
* Foreground color as 24-bit RGB value. Negative value means not set.
@@
-93,7
+103,7
@@
public class CellAttributes {
* @see #reset()
*/
public CellAttributes() {
* @see #reset()
*/
public CellAttributes() {
- reset();
+ // NOP
}
/**
}
/**
@@
-116,7
+126,7
@@
public class CellAttributes {
* @return bold value
*/
public final boolean isBold() {
* @return bold value
*/
public final boolean isBold() {
- return
bold
;
+ return
((flags & BOLD) == 0 ? false : true)
;
}
/**
}
/**
@@
-125,7
+135,11
@@
public class CellAttributes {
* @param bold new bold value
*/
public final void setBold(final boolean bold) {
* @param bold new bold value
*/
public final void setBold(final boolean bold) {
- this.bold = bold;
+ if (bold) {
+ flags |= BOLD;
+ } else {
+ flags &= ~BOLD;
+ }
}
/**
}
/**
@@
-134,7
+148,7
@@
public class CellAttributes {
* @return blink value
*/
public final boolean isBlink() {
* @return blink value
*/
public final boolean isBlink() {
- return
blink
;
+ return
((flags & BLINK) == 0 ? false : true)
;
}
/**
}
/**
@@
-143,7
+157,11
@@
public class CellAttributes {
* @param blink new blink value
*/
public final void setBlink(final boolean blink) {
* @param blink new blink value
*/
public final void setBlink(final boolean blink) {
- this.blink = blink;
+ if (blink) {
+ flags |= BLINK;
+ } else {
+ flags &= ~BLINK;
+ }
}
/**
}
/**
@@
-152,7
+170,7
@@
public class CellAttributes {
* @return reverse value
*/
public final boolean isReverse() {
* @return reverse value
*/
public final boolean isReverse() {
- return
reverse
;
+ return
((flags & REVERSE) == 0 ? false : true)
;
}
/**
}
/**
@@
-161,7
+179,11
@@
public class CellAttributes {
* @param reverse new reverse value
*/
public final void setReverse(final boolean reverse) {
* @param reverse new reverse value
*/
public final void setReverse(final boolean reverse) {
- this.reverse = reverse;
+ if (reverse) {
+ flags |= REVERSE;
+ } else {
+ flags &= ~REVERSE;
+ }
}
/**
}
/**
@@
-170,7
+192,7
@@
public class CellAttributes {
* @return underline value
*/
public final boolean isUnderline() {
* @return underline value
*/
public final boolean isUnderline() {
- return
underline
;
+ return
((flags & UNDERLINE) == 0 ? false : true)
;
}
/**
}
/**
@@
-179,7
+201,11
@@
public class CellAttributes {
* @param underline new underline value
*/
public final void setUnderline(final boolean underline) {
* @param underline new underline value
*/
public final void setUnderline(final boolean underline) {
- this.underline = underline;
+ if (underline) {
+ flags |= UNDERLINE;
+ } else {
+ flags &= ~UNDERLINE;
+ }
}
/**
}
/**
@@
-188,7
+214,7
@@
public class CellAttributes {
* @return protect value
*/
public final boolean isProtect() {
* @return protect value
*/
public final boolean isProtect() {
- return
protect
;
+ return
((flags & PROTECT) == 0 ? false : true)
;
}
/**
}
/**
@@
-197,7
+223,11
@@
public class CellAttributes {
* @param protect new protect value
*/
public final void setProtect(final boolean protect) {
* @param protect new protect value
*/
public final void setProtect(final boolean protect) {
- this.protect = protect;
+ if (protect) {
+ flags |= PROTECT;
+ } else {
+ flags &= ~PROTECT;
+ }
}
/**
}
/**
@@
-286,11
+316,7
@@
public class CellAttributes {
* bold/underline/blink/rever/protect.
*/
public void reset() {
* bold/underline/blink/rever/protect.
*/
public void reset() {
- bold = false;
- blink = false;
- reverse = false;
- underline = false;
- protect = false;
+ flags = 0;
foreColor = Color.WHITE;
backColor = Color.BLACK;
foreColorRGB = -1;
foreColor = Color.WHITE;
backColor = Color.BLACK;
foreColorRGB = -1;
@@
-310,15
+336,11
@@
public class CellAttributes {
}
CellAttributes that = (CellAttributes) rhs;
}
CellAttributes that = (CellAttributes) rhs;
- return ((foreColor == that.foreColor)
+ return ((flags == that.flags)
+ && (foreColor == that.foreColor)
&& (backColor == that.backColor)
&& (foreColorRGB == that.foreColorRGB)
&& (backColor == that.backColor)
&& (foreColorRGB == that.foreColorRGB)
- && (backColorRGB == that.backColorRGB)
- && (bold == that.bold)
- && (reverse == that.reverse)
- && (underline == that.underline)
- && (blink == that.blink)
- && (protect == that.protect));
+ && (backColorRGB == that.backColorRGB));
}
/**
}
/**
@@
-331,11
+353,7
@@
public class CellAttributes {
int A = 13;
int B = 23;
int hash = A;
int A = 13;
int B = 23;
int hash = A;
- hash = (B * hash) + (bold ? 1 : 0);
- hash = (B * hash) + (blink ? 1 : 0);
- hash = (B * hash) + (underline ? 1 : 0);
- hash = (B * hash) + (reverse ? 1 : 0);
- hash = (B * hash) + (protect ? 1 : 0);
+ hash = (B * hash) + flags;
hash = (B * hash) + foreColor.hashCode();
hash = (B * hash) + backColor.hashCode();
hash = (B * hash) + foreColorRGB;
hash = (B * hash) + foreColor.hashCode();
hash = (B * hash) + backColor.hashCode();
hash = (B * hash) + foreColorRGB;
@@
-351,11
+369,7
@@
public class CellAttributes {
public void setTo(final Object rhs) {
CellAttributes that = (CellAttributes) rhs;
public void setTo(final Object rhs) {
CellAttributes that = (CellAttributes) rhs;
- this.bold = that.bold;
- this.blink = that.blink;
- this.reverse = that.reverse;
- this.underline = that.underline;
- this.protect = that.protect;
+ this.flags = that.flags;
this.foreColor = that.foreColor;
this.backColor = that.backColor;
this.foreColorRGB = that.foreColorRGB;
this.foreColor = that.foreColor;
this.backColor = that.backColor;
this.foreColorRGB = that.foreColorRGB;
@@
-374,8
+388,8
@@
public class CellAttributes {
(foreColorRGB & 0xFFFFFF),
(backColorRGB & 0xFFFFFF));
}
(foreColorRGB & 0xFFFFFF),
(backColorRGB & 0xFFFFFF));
}
- return String.format("%s%s%s on %s", (
bold == true
? "bold " : ""),
- (
blink == true
? "blink " : ""), foreColor, backColor);
+ return String.format("%s%s%s on %s", (
isBold()
? "bold " : ""),
+ (
isBlink()
? "blink " : ""), foreColor, backColor);
}
}
}
}