aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-16 22:52:39 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-16 22:52:39 -0400
commitf835fc2b36f2564e7bacb981386dd6366d767dd2 (patch)
treef387c6a65d68c2045d274f8875b12605b1b28f61
parentb735a5defa5d03ba16814c2ff4aaa116296539c2 (diff)
downloadpython-termcast-server-f835fc2b36f2564e7bacb981386dd6366d767dd2.tar.gz
python-termcast-server-f835fc2b36f2564e7bacb981386dd6366d767dd2.zip
handle inverse
-rw-r--r--termcast_server/index.html33
-rw-r--r--termcast_server/termcast.py14
2 files changed, 34 insertions, 13 deletions
diff --git a/termcast_server/index.html b/termcast_server/index.html
index 2550776..fe08035 100644
--- a/termcast_server/index.html
+++ b/termcast_server/index.html
@@ -357,25 +357,36 @@ socket.onmessage = function (e) {
td.innerHTML = contents;
}
if (update.cell.hasOwnProperty('fgcolor')) {
- if (update.cell.fgcolor != null) {
- var fgcolor = update.cell.fgcolor;
- if (update.cell.hasOwnProperty('bold')) {
- if (update.cell.bold && fgcolor < 8) {
- fgcolor += 8;
- }
+ var inverse = update.cell.inverse;
+ var fgcolor = update.cell.fgcolor;
+ var bgcolor = update.cell.bgcolor;
+ var style = inverse ? 'background-color' : 'color';
+ if (inverse && fgcolor == bgcolor) {
+ td.style.setProperty(style, '#d3d3d3');
+ }
+ else if (fgcolor != null) {
+ if (update.cell.bold && fgcolor < 8) {
+ fgcolor += 8;
}
- td.style.setProperty('color', colors[fgcolor]);
+ td.style.setProperty(style, colors[fgcolor]);
}
else {
- td.style.removeProperty('color');
+ td.style.removeProperty(style);
}
}
if (update.cell.hasOwnProperty('bgcolor')) {
- if (update.cell.bgcolor != null) {
- td.style.setProperty('background-color', colors[update.cell.bgcolor]);
+ var inverse = update.cell.inverse;
+ var fgcolor = update.cell.fgcolor;
+ var bgcolor = update.cell.bgcolor;
+ var style = inverse ? 'color' : 'background-color';
+ if (inverse && bgcolor == fgcolor) {
+ td.style.setProperty(style, 'black');
+ }
+ else if (bgcolor != null) {
+ td.style.setProperty(style, colors[bgcolor]);
}
else {
- td.style.removeProperty('background-color');
+ td.style.removeProperty(style);
}
}
if (update.cell.hasOwnProperty('italic')) {
diff --git a/termcast_server/termcast.py b/termcast_server/termcast.py
index 8b6935d..58fa2ab 100644
--- a/termcast_server/termcast.py
+++ b/termcast_server/termcast.py
@@ -114,11 +114,21 @@ class Handler(object):
if cur_cell[key] != prev_cell[key]:
cell_changes[key] = cur_cell[key]
+ if "fgcolor" in cell_changes:
+ cell_changes["bgcolor"] = cur_cell["bgcolor"]
+ cell_changes["bold"] = cur_cell["bold"]
+ cell_changes["inverse"] = cur_cell["inverse"]
+
+ if "bgcolor" in cell_changes:
+ cell_changes["fgcolor"] = cur_cell["fgcolor"]
+ cell_changes["inverse"] = cur_cell["inverse"]
+
if "bold" in cell_changes:
cell_changes["fgcolor"] = cur_cell["fgcolor"]
- if "fgcolor" in cell_changes:
- cell_changes["bold"] = cur_cell["bold"]
+ if "inverse" in cell_changes:
+ cell_changes["fgcolor"] = cur_cell["fgcolor"]
+ cell_changes["bgcolor"] = cur_cell["bgcolor"]
return cell_changes