30 lines
968 B
Rust
30 lines
968 B
Rust
use tb_runtime::host::{CaptureHost, Ereignis, MausArt, MausEreignis};
|
|
use tb_vm::interp::{RunEvent, Vm};
|
|
|
|
fn main() {
|
|
let form = tb_ui::frm::read_text(
|
|
"eingabe-taste-maus.frm",
|
|
include_str!("../../compat/eingabe-taste-maus.frm"),
|
|
)
|
|
.unwrap();
|
|
let module = tb_vm::compile_source_with_forms("FORM1", &form.code, &form.catalog()).unwrap();
|
|
let mut vm = Vm::new(module);
|
|
form.apply(&mut vm.forms).unwrap();
|
|
vm.forms.show(0, false).unwrap();
|
|
let mut host = CaptureHost::default();
|
|
host.ereignis_nach(2, Ereignis::Taste("K".into(), 0));
|
|
host.ereignis_nach(
|
|
2,
|
|
Ereignis::Maus(MausEreignis {
|
|
art: MausArt::Druck,
|
|
taste: 1,
|
|
shift: 0,
|
|
zeile: 2,
|
|
spalte: 2,
|
|
}),
|
|
);
|
|
assert_eq!(vm.run(&mut host), RunEvent::Ended);
|
|
assert_eq!(tb_runtime::snapshot::text(&vm.rt.screen), "KM\n");
|
|
println!("Terminalfreier FRM-/VM-Lauf: KM");
|
|
}
|