aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-22 11:47:32 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-22 11:47:32 -0500
commite6b6398033125d2fc6dce32e61458e0724bddb6a (patch)
treee9d0dfdd25e2c10cef2ca8437863ee3776c47f49
parent52e5cc942dca20afa7912d09f5e1fa2a56c75bef (diff)
downloadteleterm-e6b6398033125d2fc6dce32e61458e0724bddb6a.tar.gz
teleterm-e6b6398033125d2fc6dce32e61458e0724bddb6a.zip
start working on watch display
-rw-r--r--teleterm-web/src/model.rs8
-rw-r--r--teleterm-web/src/views/watch.rs19
-rw-r--r--teleterm/static/teleterm_web.js83
-rw-r--r--teleterm/static/teleterm_web_bg.wasmbin688100 -> 687220 bytes
4 files changed, 61 insertions, 49 deletions
diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs
index fa0cb63..72ac8c3 100644
--- a/teleterm-web/src/model.rs
+++ b/teleterm-web/src/model.rs
@@ -67,11 +67,7 @@ impl Model {
}
}
- pub fn screen(&self) -> String {
- if let Some(conn) = &self.watch_conn {
- conn.term.screen().contents()
- } else {
- "".to_string()
- }
+ pub fn screen(&self) -> Option<&vt100::Screen> {
+ self.watch_conn.as_ref().map(|conn| conn.term.screen())
}
}
diff --git a/teleterm-web/src/views/watch.rs b/teleterm-web/src/views/watch.rs
index a589596..07e8244 100644
--- a/teleterm-web/src/views/watch.rs
+++ b/teleterm-web/src/views/watch.rs
@@ -1,5 +1,22 @@
use crate::prelude::*;
pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> {
- seed::pre![model.screen()]
+ let screen = if let Some(screen) = model.screen() {
+ screen
+ } else {
+ return seed::empty![];
+ };
+ let (rows, cols) = screen.size();
+
+ let mut grid = vec![];
+ for row_idx in 0..rows {
+ let mut row = vec![];
+ for col_idx in 0..cols {
+ let cell = screen.cell(row_idx, col_idx).unwrap();
+ row.push(seed::div![cell.contents()])
+ }
+ grid.push(seed::div![row]);
+ }
+
+ seed::div![grid]
}
diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js
index 4b6e536..593d5a8 100644
--- a/teleterm/static/teleterm_web.js
+++ b/teleterm/static/teleterm_web.js
@@ -1,10 +1,6 @@
let wasm;
-function __wbg_elem_binding0(arg0, arg1) {
- wasm.__wbg_function_table.get(222)(arg0, arg1);
-}
-
const heap = new Array(32);
heap.fill(undefined);
@@ -21,29 +17,32 @@ function addHeapObject(obj) {
heap[idx] = obj;
return idx;
}
-function __wbg_elem_binding1(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+function __wbg_elem_binding0(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(290)(arg0, arg1, addHeapObject(arg2));
+}
+function __wbg_elem_binding1(arg0, arg1) {
+ wasm.__wbg_function_table.get(220)(arg0, arg1);
}
function __wbg_elem_binding2(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(292)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(72)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding3(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(72)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding4(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(76)(arg0, arg1, arg2);
}
function __wbg_elem_binding5(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(55)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(72)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding6(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(59)(arg0, arg1, arg2);
+ wasm.__wbg_function_table.get(72)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding7(arg0, arg1, arg2, arg3, arg4) {
- wasm.__wbg_function_table.get(319)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
+ wasm.__wbg_function_table.get(317)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
}
function __wbg_elem_binding8(arg0, arg1, arg2, arg3) {
- wasm.__wbg_function_table.get(323)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
+ wasm.__wbg_function_table.get(321)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
/**
*/
@@ -229,16 +228,13 @@ function init(module) {
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0);
};
- imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
- const ret = getStringFromWasm(arg0, arg1);
- return addHeapObject(ret);
- };
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
const ret = getObject(arg0);
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_cb_forget = function(arg0) {
- takeObject(arg0);
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
+ const ret = getStringFromWasm(arg0, arg1);
+ return addHeapObject(ret);
};
imports.wbg.__wbindgen_cb_drop = function(arg0) {
const obj = takeObject(arg0).original;
@@ -249,6 +245,9 @@ function init(module) {
const ret = false;
return ret;
};
+ imports.wbg.__wbindgen_cb_forget = function(arg0) {
+ takeObject(arg0);
+ };
imports.wbg.__wbindgen_json_parse = function(arg0, arg1) {
const ret = JSON.parse(getStringFromWasm(arg0, arg1));
return addHeapObject(ret);
@@ -885,16 +884,16 @@ function init(module) {
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm(arg0, arg1));
};
- imports.wbg.__wbindgen_closure_wrapper249 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper294 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding1(a, state.b, arg0);
+ return __wbg_elem_binding2(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(73)(a, state.b);
else state.a = a;
}
}
@@ -903,16 +902,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper243 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper1041 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding6(a, state.b, arg0);
+ return __wbg_elem_binding0(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(291)(a, state.b);
else state.a = a;
}
}
@@ -921,16 +920,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper241 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper292 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding5(a, state.b, arg0);
+ return __wbg_elem_binding6(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(73)(a, state.b);
else state.a = a;
}
}
@@ -939,16 +938,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper631 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper288 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = () => {
+ const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding0(a, state.b, );
+ return __wbg_elem_binding3(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(223)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(73)(a, state.b);
else state.a = a;
}
}
@@ -957,16 +956,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper1042 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper290 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding2(a, state.b, arg0);
+ return __wbg_elem_binding4(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(293)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(73)(a, state.b);
else state.a = a;
}
}
@@ -975,16 +974,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper247 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper296 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding3(a, state.b, arg0);
+ return __wbg_elem_binding5(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(73)(a, state.b);
else state.a = a;
}
}
@@ -993,16 +992,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper245 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper630 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = (arg0) => {
+ const real = () => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding4(a, state.b, arg0);
+ return __wbg_elem_binding1(a, state.b, );
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(56)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(221)(a, state.b);
else state.a = a;
}
}
diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm
index 812e8bd..e2b981c 100644
--- a/teleterm/static/teleterm_web_bg.wasm
+++ b/teleterm/static/teleterm_web_bg.wasm
Binary files differ