diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-10-16 22:52:39 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-10-16 22:52:39 -0400 |
commit | f835fc2b36f2564e7bacb981386dd6366d767dd2 (patch) | |
tree | f387c6a65d68c2045d274f8875b12605b1b28f61 /termcast_server | |
parent | b735a5defa5d03ba16814c2ff4aaa116296539c2 (diff) | |
download | python-termcast-server-f835fc2b36f2564e7bacb981386dd6366d767dd2.tar.gz python-termcast-server-f835fc2b36f2564e7bacb981386dd6366d767dd2.zip |
handle inverse
Diffstat (limited to 'termcast_server')
-rw-r--r-- | termcast_server/index.html | 33 | ||||
-rw-r--r-- | termcast_server/termcast.py | 14 |
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 |