From f835fc2b36f2564e7bacb981386dd6366d767dd2 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 16 Oct 2014 22:52:39 -0400 Subject: handle inverse --- termcast_server/index.html | 33 ++++++++++++++++++++++----------- 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 -- cgit v1.2.3-54-g00ecf