home · contact · privacy
Add mode line.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 28 Oct 2020 23:38:47 +0000 (00:38 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 28 Oct 2020 23:38:47 +0000 (00:38 +0100)
new2/rogue_chat_nocanvas_monochrome.html

index 43c7ce85d5f87823976a5a2ecdbffbcbfa3a3d64..02d6d6b48bbff22345af283cac8bee71132707cb 100644 (file)
@@ -152,9 +152,11 @@ let tui = {
   input_lines: [],
   window_width: terminal.cols / 2,
   height_turn_line: 1,
+  height_mode_line: 1,
   height_input: 1,
   init: function() {
       this.recalc_input_lines();
+      this.height_header = this.height_turn_line + this.height_mode_line;
   },
   switch_mode: function(mode_name, keep_pos=false) {
     if (mode_name == 'study' && !keep_pos) {
@@ -164,14 +166,18 @@ let tui = {
     this.empty_input();
     this.full_refresh();
   },
+  draw_mode_line: function() {
+      terminal.drawBox(1, this.window_width, this.height_mode_line, this.window_width);
+      terminal.write(1, this.window_width, 'MODE ' + this.mode);
+  },
   draw_history: function() {
-    if (terminal.rows <= this.height_turn_line + this.height_input) {
+    if (terminal.rows <= this.height_header + this.height_input) {
         return;
     }
-    terminal.drawBox(this.height_turn_line, this.window_width, terminal.rows - this.height_turn_line - this.height_input, this.window_width);
-      for (let y = terminal.rows - this.height_input - this.height_turn_line,
+    terminal.drawBox(this.height_header, this.window_width, terminal.rows - this.height_header - this.height_input, this.window_width);
+      for (let y = terminal.rows - 1 - this.height_input,
                i = this.log.length - 1;
-           y >= this.height_turn_line && i >= 0;
+           y >= this.height_header && i >= 0;
            y--, i--) {
           terminal.write(y, this.window_width, this.log[i]);
       }
@@ -300,15 +306,16 @@ let tui = {
     tui.log_msg("");
   },
   draw_info: function() {
-    terminal.drawBox(this.height_turn_line, this.window_width, terminal.rows - this.height_turn_line - this.height_input, this.window_width);
+    terminal.drawBox(this.height_header, this.window_width, terminal.rows - this.height_header - this.height_input, this.window_width);
     let lines = this.msg_into_lines_of_width(explorer.get_info(), this.window_width);
-    for (let y = this.height_turn_line, i = 0; y < terminal.rows && i < lines.length; y++, i++) {
+    for (let y = this.height_header, i = 0; y < terminal.rows && i < lines.length; y++, i++) {
       terminal.write(y, this.window_width, lines[i]);
     }
   },
   full_refresh: function() {
     this.draw_map();
     this.draw_turn_line();
+    this.draw_mode_line();
     if (this.mode == 'study' || this.mode == 'annotate') {
       this.draw_info();
     } else {