#35 cjk without sixel
authorKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 13 Aug 2019 22:53:06 +0000 (17:53 -0500)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Tue, 13 Aug 2019 22:53:06 +0000 (17:53 -0500)
src/jexer/TApplication.java
src/jexer/TButton.java
src/jexer/TCheckBox.java
src/jexer/TLabel.java
src/jexer/backend/LogicalScreen.java
src/jexer/menu/TMenuItem.java

index ec93629b0b17f9584336ff855f0d1010660121be..8cbce90008643cb622928322cab03ae2741fec35 100644 (file)
@@ -1695,17 +1695,16 @@ public class TApplication implements Runnable {
         Cell cell = getScreen().getCharXY(x, y);
         if (cell.isImage()) {
             cell.invertImage();
+        }
+        if (cell.getForeColorRGB() < 0) {
+            cell.setForeColor(cell.getForeColor().invert());
         } else {
-            if (cell.getForeColorRGB() < 0) {
-                cell.setForeColor(cell.getForeColor().invert());
-            } else {
-                cell.setForeColorRGB(cell.getForeColorRGB() ^ 0x00ffffff);
-            }
-            if (cell.getBackColorRGB() < 0) {
-                cell.setBackColor(cell.getBackColor().invert());
-            } else {
-                cell.setBackColorRGB(cell.getBackColorRGB() ^ 0x00ffffff);
-            }
+            cell.setForeColorRGB(cell.getForeColorRGB() ^ 0x00ffffff);
+        }
+        if (cell.getBackColorRGB() < 0) {
+            cell.setBackColor(cell.getBackColor().invert());
+        } else {
+            cell.setBackColorRGB(cell.getBackColorRGB() ^ 0x00ffffff);
         }
         getScreen().putCharXY(x, y, cell);
         if ((onlyThisCell == true) || (cell.getWidth() == Cell.Width.SINGLE)) {
@@ -1856,7 +1855,7 @@ public class TApplication implements Runnable {
                 menuColor);
             getScreen().putStringXY(x + 1, 0, menu.getTitle(), menuColor);
             // Draw the highlight character
-            getScreen().putCharXY(x + 1 + menu.getMnemonic().getShortcutIdx(),
+            getScreen().putCharXY(x + 1 + menu.getMnemonic().getScreenShortcutIdx(),
                 0, menu.getMnemonic().getShortcut(), menuMnemonicColor);
 
             if (menu.isActive()) {
index 534c12a441b9db40ce07f760e947b7c5e6cf796c..82a638922df56ed7ad6086fcfd5ba4aff385e28f 100644 (file)
@@ -250,12 +250,12 @@ public class TButton extends TWidget {
                     GraphicsChars.CP437[0xDF], shadowColor);
             }
         }
-        if (mnemonic.getShortcutIdx() >= 0) {
+        if (mnemonic.getScreenShortcutIdx() >= 0) {
             if (inButtonPress) {
-                putCharXY(2 + mnemonic.getShortcutIdx(), 0,
+                putCharXY(2 + mnemonic.getScreenShortcutIdx(), 0,
                     mnemonic.getShortcut(), menuMnemonicColor);
             } else {
-                putCharXY(1 + mnemonic.getShortcutIdx(), 0,
+                putCharXY(1 + mnemonic.getScreenShortcutIdx(), 0,
                     mnemonic.getShortcut(), menuMnemonicColor);
             }
         }
index 1e86470a4f36a1b850f9f9fe5df0f4341eb87498..1f9a351c0c0c636c538272d372c5a3b4ef43f583 100644 (file)
@@ -176,8 +176,8 @@ public class TCheckBox extends TWidget {
         }
         putCharXY(2, 0, ']', checkboxColor);
         putStringXY(4, 0, mnemonic.getRawLabel(), checkboxColor);
-        if (mnemonic.getShortcutIdx() >= 0) {
-            putCharXY(4 + mnemonic.getShortcutIdx(), 0,
+        if (mnemonic.getScreenShortcutIdx() >= 0) {
+            putCharXY(4 + mnemonic.getScreenShortcutIdx(), 0,
                 mnemonic.getShortcut(), mnemonicColor);
         }
     }
index 1d65976bba16f3947a3c47498cf552dcdda4f849..38c014c26ea256441d37bb2a03c88417c49fd8c1 100644 (file)
@@ -186,8 +186,8 @@ public class TLabel extends TWidget {
             mnemonicColor.setBackColor(background.getBackColor());
         }
         putStringXY(0, 0, mnemonic.getRawLabel(), color);
-        if (mnemonic.getShortcutIdx() >= 0) {
-            putCharXY(mnemonic.getShortcutIdx(), 0,
+        if (mnemonic.getScreenShortcutIdx() >= 0) {
+            putCharXY(mnemonic.getScreenShortcutIdx(), 0,
                 mnemonic.getShortcut(), mnemonicColor);
         }
     }
index b4e6214177ecb4a2fb7036b1bdab7bec8e95954e..4e4aecca7a349eb999b83a9ef4bc71c229ff650a 100644 (file)
@@ -803,11 +803,30 @@ public class LogicalScreen implements Screen {
         clipBottom = height - offsetY;
 
         for (int i = 0; i < boxHeight; i++) {
-            putAttrXY(boxLeft + boxWidth, boxTop + 1 + i, shadowAttr);
-            putAttrXY(boxLeft + boxWidth + 1, boxTop + 1 + i, shadowAttr);
+            Cell cell = getCharXY(offsetX + boxLeft + boxWidth,
+                offsetY + boxTop + 1 + i);
+            if (cell.getWidth() == Cell.Width.SINGLE) {
+                putAttrXY(boxLeft + boxWidth, boxTop + 1 + i, shadowAttr);
+            } else {
+                putCharXY(boxLeft + boxWidth, boxTop + 1 + i, ' ', shadowAttr);
+            }
+            cell = getCharXY(offsetX + boxLeft + boxWidth + 1,
+                offsetY + boxTop + 1 + i);
+            if (cell.getWidth() == Cell.Width.SINGLE) {
+                putAttrXY(boxLeft + boxWidth + 1, boxTop + 1 + i, shadowAttr);
+            } else {
+                putCharXY(boxLeft + boxWidth + 1, boxTop + 1 + i, ' ',
+                    shadowAttr);
+            }
         }
         for (int i = 0; i < boxWidth; i++) {
-            putAttrXY(boxLeft + 2 + i, boxTop + boxHeight, shadowAttr);
+            Cell cell = getCharXY(offsetX + boxLeft + 2 + i,
+                offsetY + boxTop + boxHeight);
+            if (cell.getWidth() == Cell.Width.SINGLE) {
+                putAttrXY(boxLeft + 2 + i, boxTop + boxHeight, shadowAttr);
+            } else {
+                putCharXY(boxLeft + 2 + i, boxTop + boxHeight, ' ', shadowAttr);
+            }
         }
         clipRight = oldClipRight;
         clipBottom = oldClipBottom;
@@ -985,15 +1004,11 @@ public class LogicalScreen implements Screen {
         Cell left = new Cell(cell);
         left.setImage(leftImage);
         left.setWidth(Cell.Width.LEFT);
-        // Blank out the char itself, so that shadows do not leave artifacts.
-        left.setChar(' ');
         putCharXY(x, y, left);
 
         Cell right = new Cell(cell);
         right.setImage(rightImage);
         right.setWidth(Cell.Width.RIGHT);
-        // Blank out the char itself, so that shadows do not leave artifacts.
-        right.setChar(' ');
         putCharXY(x + 1, y, right);
     }
 
index eafa9e5bcc9fbdadd11c763c91dbd32c7bdd0df0..d9dfc2ac5482b64123713f45e8b58f7f9abf3e3d 100644 (file)
@@ -231,9 +231,9 @@ public class TMenuItem extends TWidget {
             putStringXY((getWidth() - StringUtils.width(keyLabel) - 2), 0,
                 keyLabel, menuColor);
         }
-        if (mnemonic.getShortcutIdx() >= 0) {
-            putCharXY(2 + mnemonic.getShortcutIdx(), 0, mnemonic.getShortcut(),
-                menuMnemonicColor);
+        if (mnemonic.getScreenShortcutIdx() >= 0) {
+            putCharXY(2 + mnemonic.getScreenShortcutIdx(), 0,
+                mnemonic.getShortcut(), menuMnemonicColor);
         }
         if (checked) {
             assert (checkable);